Вначале немного представлюсь. Меня зовут Рыжонин Николай, в "1С-Битрикс" я курирую направление производительности продуктов компании. Если у вас есть вопросы, предложения или пожелания, касающиеся производительности, обращайтесь e-mail: rns@bitrix.ru
Данная тема уже не раз подымалась (например тут), но тем не менее все таки решил опубликовать обобщенное решения для выполнения всех агентов из под cron.
Для начала полностью отключим выполнение агентов на хите. Для этого выполним следующую команду в php консоли.
После этого все агенты и отправка системных событий будут обрабатывается из под cron, раз в 5 минут. Чтобы не увеличивалась очередь отправки почтовых сообщений, советую изменить параметр отвечающий за количество почтовых событий обрабатываемых за раз. Для этого выполняем в php консоли следующую команду
Все хорошо, но внесите в шапку вариант когда все на cron - почта на хитах. а то пока у пользователя еще сервер обработает, мое мнение что почта должна работать как можно быстрей
Сделал по инструкции, но какая-то ошибка мешает отправке. При ручном запуске команды: /usr/bin/php -f /home/bitrix/www/bitrix/php_interface/cron_events.php
на выходе html-код и ошибка Fatal error: Class 'Bitrix\Mail\Message' not found in /home/bitrix/www/bitrix/modules/main/lib/mail/eventmessagethemecompiler.php(273) : eval()'d code on line 26
Прежде, чем добавлять скрипт в крон, нужно проверить в терминале уже имеющиеся задания. Команда
crontab -l
потом нужно найти эти задания. Вопрос в том, какой файл крон использует. На моём "Битрикс:Веб-окружение - Linux" это был файл без расширения, с названием как имя пользователя (root или bitrix) в папке var/spool/cron/ И когда нашли, нужно изменить время срабатывания, а потом проверить, чтобы агенты стали отрабатывать через это время. Т.е. что действительно система реагирует на изменения этого файла. Также про запись */5. Я лично долго искал, что значит "/5". Если написать "5", то это будет "5-я минута часа". Т.е."5 * * * * " означает в 00:05, 01:05 и т.д. А вот "*/5" означает каждую пятую минуту. Т.е. "*/5 * * * *" означает в 00:00, 00:05, 00:10 и т.д. Сама звёздочка означает "каждый, любой".
Ошибка! Есть ошибки при отправке системных почтовых сообщений, число неотправленных сообщений: 1 Определена константа BX_CRONTAB_SUPPORT в /bitrix/php_interface/dbconn.php, при этом должен быть настроен вызов агентов на cron. Закеширована информация об отправке почты, возможно это произошло в результате сбоя, попробуйте очистить весь кеш.
Такую ошибку написал, все сделал как в описание, только задачу в крон добавил руками через интерфейс хостера timeweb.
Ошибка! Есть ошибки при отправке системных почтовых сообщений, число неотправленных сообщений: 4598 Определена константа BX_CRONTAB_SUPPORT в /bitrix/php_interface/dbconn.php, при этом должен быть настроен вызов агентов на cron.
Алексей Паничев, у вас, наверное, используется шаблон письма, внутри которого вызов $APPLICATION->ShowHead(); При запуске шаблона из под крона, $APPLICATION неопределён. Добавьте в начало global $APPLICATION; и должно заработать.
Подскажите в чем может быть ошибка. Запускаю команду вручную, получаю: Fatal error: Class 'CEvent' not found in /var/www/bitrix01/bitrix/modules/main/tools/cron_events.php on line 15
в cron указал */5 * * * * /usr/bin/php -f /home/www/xn--24-dlchfbaxyor2bbo4kh.xn--p1ai/bitrix/php_interface/cron_events.php при выполнении Exited with return code = 127 или не нужно было менять путь до своего файла cron_events.php ?
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».