Как Error Monitor & Notifier и замена стандартного логирования помогает поддерживать WordPress-интеграцию

Интернет-магазин на Вордпрессе интегрировали с маркетплейсами Озон, Вайлдберриз и Яндекс.Маркет. Модуль интеграции обновляет остатки, автоматически отвечает на отзывы покупателей и выполняет другие задачи бизнеса.

Сообщение о проблеме

Час назад поступил звонок из отдела доставки. Коллега сообщил, что 5 дней не создаются пропуска для водителей, которые отвозят товары на склады Wildberries, и приходится генерировать документы вручную.

Текущий срок действия API-ключа на ВБ составляет 6 месяцев, или 180 дней.

Параметры API-протокола часто изменяются, действия РКН вызывают нестабильность сетевых соединений. Поэтому невозможно сразу сказать, что вызывало ошибку. Разработчики решили проверить логи и параметры методов API-интеграции с маркетплейсом, чтобы выяснить причину.

Замена молчаливого логирования оповещением

На первом же шаге при анализе логов выяснилось, что пять дней назад истек срок действия API-ключа, поэтому запросы завершались ошибкой 401  Unauthorized. Единственное действие, которое срабатывало в коде при ответе со статусом кроме 200 ОК, — запись лога стандартной функцией error_log. В критических участках кода программисты настроили отправку писем, но не предусмотрели, что ответ со статусом 401 иногда становится таким же важным местом; мало ли какой запрос вернул статус 4хх: ошибка сети, ошибка сервера маркета или другая причина, на каждый случай email-уведомление не настроишь на небольшом проекте. Оказалось, что «протухший» ключ остался «неважной» проблемой и код только сопроводил событие записью в лог.

После проверки стандартное логирование ошибочных запросов функцией error_log(), которая без других аргументов только записывает информацию об ошибке в журнал, в методе request() заменили вызовом функции trigger_error() с уровнем ошибки E_USER_WARNING, если код ответа не совпадает с кодом 200. Плагин Error Monitor & Notifier при загрузке регистрирует свой обработчик ошибок, который кроме перехвата пользовательских ошибок и записи логов сообщает о сбое. Поэтому теперь разработчики или владелец сайта сразу получат уведомление, если запрос методом request() вернет код кроме двухсотого, при условии, что в настройках плагина вместе с оповещениями об ошибках уровня предупреждения включили уведомления на эл. почту или в Телеграм. Аналогичное однострочное изменение внесли в методы сетевых запросов при взаимодействии с другими торговыми площадками.

Теперь о просроченном ключе поступит мгновенное уведомление. Разработчики решили, что лучше получить оповещение о неважном ответе с кодом 400 или информацию об аналогичных провальных запросах, чем пропустить срок истечения API-ключа и отключение связанных операций. Плюсом стало и то, что не потребуется настраивать отдельные напоминания в планировщике смартфона или ежедневно проверять в лог-файле записи о четырехсотых ошибках.

Leave a Comment

Your email address will not be published. Required fields are marked *

0
    0
    Cart
    The cart is emptyReturn to Shop
    Scroll to Top