Михаил Базаров Разработка на 1С-Битрикс Михаил Базаров

Возвращаем выполнение агентов на хиты в 1С-Битрикс (если очень нужно)

Внимание! Все сообщения на форуме проходят модерацию. Ваше сообщение появится после проверки.
Нейрослоуп  :)  но иногда надо

Агенты в 1С-Битрикс — это фоновые задачи, которые выполняются по расписанию. По умолчанию система рекомендует использовать cron (регулярный запуск через планировщик), потому что это надёжно и не нагружает сайт при каждом посещении. Но иногда настройки cron ломаются, агенты «зависают», и нужно срочно вернуть их работу через хиты (выполнение при каждом заходе на сайт).

Внимание: запуск агентов на хитах создаёт дополнительную нагрузку на сервер и может замедлить работу сайта. Это временное решение, пока не настроите cron. Используйте только если других вариантов нет.

Шаг 1: Отключаем cron-поддержку в dbconn.php
Откройте файл /bitrix/php_interface/dbconn.php (если его нет — создайте) и добавьте в самое начало, после <?php, строку:

Код
define('BX_CRONTAB_SUPPORT', false);

Это скажет Битрикс, что планировщик cron отключён, и система попытается запускать агенты при каждом хите.

Шаг 2: Принудительно меняем настройки через командную PHP-строку
Если после правки файла агенты всё ещё не работают, зайдите в админке в Настройки → Инструменты → Командная PHP-строка и выполните код:

Код
// Отключаем использование cron для агентов
COption::SetOptionString("main", "agents_use_crontab", "N");
// Проверяем, что значение сохранилось
echo COption::GetOptionString("main", "agents_use_crontab", "N");
// Включаем проверку агентов при каждом хите
COption::SetOptionString("main", "check_agents", "Y");
echo COption::GetOptionString("main", "check_agents", "N");

После выполнения вы должны увидеть на экране NY (или NN, если параметры уже были установлены). Это подтвердит, что настройки применены.

Проверьте работу агентов — зайдите в Настройки → Инструменты → Агенты и убедитесь, что дата последнего запуска обновляется.

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

Верните cron как можно скорее — настройте планировщик на вашем хостинге (инструкции есть в документации Битрикс), а затем:
Удалите строку define('BX_CRONTAB_SUPPORT', false); из dbconn.php

В командной PHP-строке выполните:
Код
COption::SetOptionString("main", "agents_use_crontab", "Y");
COption::SetOptionString("main", "check_agents", "N");

Запуск агентов на хитах — это «скорая помощь» для сайта, когда cron не работает. Используйте её осторожно и только временно. Долгосрочное решение — правильная настройка планировщика заданий.
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
 

Блог-note Заметки по 1С-Битрикс