Перейти к основному содержанию
Тест-сервис
Обсудить проект
Все материалы
Поддержка агенты Битрикс cron фоновые задачи

Агенты Битрикс или cron: правильная настройка

Агенты на хитах зависят от посещаемости, а cron — от серверного расписания. Разбираем выбор режима, окружение запуска и контроль фоновых задач.

Агент в 1С-Битрикс — запланированная PHP-функция. Он может запускаться во время пользовательских обращений или через системное расписание. Правильный выбор зависит не от моды, а от требуемой регулярности, нагрузки и способности контролировать результат.

На хитах проще запустить, но время зависит от посещаемости и задача добавляет работу пользовательскому запросу
Через cron предсказуемое расписание, отдельные логи и меньше влияния на посетителя

Когда достаточно выполнения на хитах

Редкая короткая задача на посещаемом сайте может безопасно выполняться на хитах. Но сайт с низким трафиком не гарантирует своевременный запуск, а тяжёлый агент увеличивает время ответа случайному пользователю.

Когда нужен cron

Cron выбирают для очередей, обменов, рассылок, резервного копирования и задач с требованием к времени. Он не исправляет плохой агент: бесконечный цикл, отсутствие блокировки или неограниченный пакет данных останутся проблемой.

Пользователь и окружение запуска

Запускайте задачу от того же системного пользователя, которому принадлежат рабочие файлы веб-приложения. Cron от root способен создать кеш и временные файлы, недоступные PHP-FPM. Укажите абсолютный путь к PHP и документному корню; не рассчитывайте на переменные окружения интерактивной оболочки.

cron
*/5 * * * * /usr/bin/php -f /var/www/site/bitrix/modules/main/tools/cron_events.php >> /var/log/bitrix-agents.log 2>&1

Это пример структуры, а не готовая команда для любого сервера. Фактический путь, способ запуска и рекомендуемый скрипт сверяйте с установленной версией и окружением.

Защита от параллельного запуска

Если один цикл длится дольше периода cron, второй процесс может начать ту же работу. Используйте блокировку на уровне задания или приложения, делите объём на ограниченные пакеты и храните позицию продолжения. Идемпотентность особенно важна для писем, оплат и передачи лидов.

Логи и мониторинг

  • записывайте начало, завершение, длительность и количество обработанных объектов;
  • отдельно фиксируйте исключения и последнюю успешную дату;
  • оповещайте, если задача не завершалась дольше допустимого интервала;
  • ограничивайте размер и срок хранения журналов.

Проверка после настройки

Создайте тестовую задачу с безопасным эффектом, дождитесь двух интервалов и проверьте пользователя процесса, права новых файлов, часовой пояс, журнал и отсутствие параллельных копий. Затем проверьте очередь почты, обмены и другие зависимые процессы.

Итогом настройки должен быть не просто рядок в crontab, а наблюдаемая система: понятно, когда задача запускалась, что обработала и почему остановилась.