Настройка алертов ошибок парсинга 1С-Битрикс за 1 день

Торговый каталог наполняется автоматически через парсер, но однажды утром вы обнаруживаете, что цены не обновлялись уже двое суток. Парсер упал в первый же час, а уведомления не пришли — стандартная почтовая очередь Битрикс забита, алерты не настроены. Потери выручки за два дня — около $900–1.3k.
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Настройка алертов ошибок парсинга 1С-Битрикс за 1 день
Простой
~1 день

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1461
  • Разработка веб-сайта для компании ФИКСПЕР
    Разработка веб-сайта для компании ФИКСПЕР
    1019
  • Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    764
  • Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    882
  • Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    810
  • Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1166

Торговый каталог наполняется автоматически через парсер, но однажды утром вы обнаруживаете, что цены не обновлялись уже двое суток. Парсер упал в первый же час, а уведомления не пришли — стандартная почтовая очередь Битрикс забита, алерты не настроены. Потери выручки за два дня — около $900–1.3k. Знакомая ситуация? Мы решали её на 30+ проектах.

Без системы алертов любой парсер — бомба замедленного действия. Мы сталкивались с этим десятки раз: заказчик теряет выручку, потому что парсер тихо падает, а уведомления не приходят. Решение — настроить оповещения так, чтобы о проблеме узнавать в минуту сбоя, а не постфактум.

Почему штатные уведомления Битрикс не решают проблему?

Стандартные почтовые события Битрикс (CEvent::Send) часто не подходят для парсеров: письмо может идти несколько минут из-за очереди b_event, а при массовых ошибках почтовый ящик забивается до отказа. Нет дедупликации, нет маршрутизации по срочности. Требуется кастомная обёртка, которая учитывает тип ошибки, источник и частоту.

Типы ошибок, которые нужно ловить

Прежде чем настраивать уведомления, классифицируем ошибки:

  • Сетевые — таймаут соединения, HTTP 403/429/503, сброс соединения. Источник недоступен или блокирует. В 30% случаев проблема временна, но 5+ подряд — системная.
  • Парсинг DOM — изменилась вёрстка источника: CSS-селекторы или XPath возвращают пустоту. Самый частый тип (60% инцидентов).
  • Валидация данных — цена = 0, название пустое, артикул не формату. Парсер получил мусор.
  • Импорт в каталог — ошибка CIBlockElement::Add(), превышение памяти, нехватка свойств.

Каждый тип требует своей срочности. Сетевая — задержка 5 минут и повтор, поломка селекторов — вмешательство разработчика.

Архитектура уведомлений

Создаём почтовое событие PARSER_ERROR_NOTIFY с макросами #ERROR_TYPE#, #SOURCE_URL#, #ERROR_MESSAGE#, #TIMESTAMP#. Шаблон регистрируем в административном разделе. Отправка из кода парсера:

CEvent::SendImmediate('PARSER_ERROR_NOTIFY', SITE_ID, [ 'ERROR_TYPE' => 'DOM_CHANGED', 'SOURCE_URL' => $url, 'ERROR_MESSAGE' => 'Селектор .price-block вернул пустой результат', 'TIMESTAMP' => date('Y-m-d H:i:s'), ]); 

SendImmediate отправляет письмо сразу, минуя очередь — для критичных ошибок это правильно. Добавляем дедупликацию: перед отправкой проверяем в Redis (или b_option), не отправлялось ли такое же уведомление за последние N минут. Для сетевых — 30-60 минут подавления, для валидационных — без подавления.

Как дедуплицировать уведомления?

Дедупликация — ключевой элемент, чтобы не заспамить каналы. Мы используем Redis на каждой ноде: ключ — хеш от ERROR_TYPE + SOURCE_URL, значение — временная метка. Если такой хеш существует и не истёк, уведомление не отправляется. Для сетевых ошибок TTL 30 минут, для ошибок парсинга DOM — без подавления (каждый сбой уникален). Альтернатива — таблица b_option с сериализованным массивом, но Redis быстрее и не нагружает базу.

Каналы кроме почты

Email — медленный канал (доставка 2-5 минут). Для критичных ошибок подключаем Telegram Bot API или Битрикс24 вебхуки. Telegram отправляет за 1-2 секунды, Битрикс24 чат — мгновенно в мобильное приложение. Настраиваем таблицу маршрутизации по срочности:

Тип ошибки Email Telegram Битрикс24 чат
Сетевая единичная
Сетевая (>5 подряд) + +
Изменение DOM + + +
Невалидные данные (>10%) + +
Ошибка импорта + + +

Telegram в 10 раз быстрее email для доставки — сравнение не в пользу стандартной почты.

Канал Типичная задержка Недостатки
Email (CEvent::Send) 2-5 мин Зависит от очереди
Telegram Bot API 1-2 сек Требует бота
Битрикс24 вебхук 0.5-1 сек Только для on-premise

Логирование как основа уведомлений

Уведомления — надстройка над логами. Каждую ошибку пишем в b_event_log через CEventLog::Add() с AUDIT_TYPE_ID='PARSER_ERROR'. Это даёт историю в штатном журнале, фильтрацию и ротацию. Агент раз в час считает ошибки и отправляет дайджест, если порог превышен.

Пример эмуляции сбоя для проверки

Для проверки алертов мы имитируем ошибку парсинга: отправляем POST-запрос с заведомо неверными данными в парсер. Например, указываем несуществующий URL или подсовываем HTML без нужных селекторов. Ловим исключение, и система отправляет уведомление. Если оно приходит в течение 5 секунд — всё работает.

Как настроить алерты за 1 день?

Процесс занимает один рабочий день:

  1. Создаём почтовое событие PARSER_ERROR_NOTIFY и шаблон с макросами.
  2. Пишем класс ParserNotifier::send() с дедупликацией и выбором канала.
  3. Интегрируем Telegram Bot API или Битрикс24 вебхук.
  4. Настраиваем запись ошибок в b_event_log.
  5. Эмулируем сбой и проверяем доставку алерта.

После настройки вы получаете готовую систему оповещений с инструкцией по эксплуатации. Закажите настройку — мы проанализируем ваш парсер и настроим алерты за 1 день. Получите консультацию: наши инженеры помогут определить оптимальные каналы и пороги.