Вначале немного представлюсь. Меня зовут Рыжонин Николай, в "1С-Битрикс" я курирую направление производительности продуктов компании. Если у вас есть вопросы, предложения или пожелания, касающиеся производительности, обращайтесь e-mail: rns@bitrix.ru
Данная тема уже не раз подымалась (например тут), но тем не менее все таки решил опубликовать обобщенное решения для выполнения всех агентов из под cron.
Для начала полностью отключим выполнение агентов на хите. Для этого выполним следующую команду в php консоли.
После этого все агенты и отправка системных событий будут обрабатывается из под cron, раз в 5 минут. Чтобы не увеличивалась очередь отправки почтовых сообщений, советую изменить параметр отвечающий за количество почтовых событий обрабатываемых за раз. Для этого выполняем в php консоли следующую команду
Аккуратно копирую содержимое файла проверки отсюда и вставляю в командную строку PHP. до этого все команды прошли успешно. Ошибка кода где именно? куда смотреть?
На данный момент при переводе агентов полностью на крон необходимо создавать свой файл их вызова и именно его подключать в кроне. Изменение стандартного файла сделаем в случае если данный способ запуска будет способом по умолчанию в BitrixEnv/BitrixVM
а также
Для того что бы вся почта нормально отправлялась по крону необходимо настраивать свой скрипт для запуска. Стандартный скрипт указанный в cron, при данных настройках не отработает.
В версии BitrixEnv/BitrixVM 5.1.2, насколько я знаю, работа агентов и почты на кроне стала способом по умолчанию. По крайней мере у нас таким образом установились настройки агентов и почты после установки BitrixEnv/BitrixVM и создании с помощью нее дополнительный сайтов. Скажите на данный момент стандартный файл cron_events.php изменен для корректной отправки почты на кроне? И как обстоит дело с переводом на крон почты в многосайтовой конфигурации, организованной с помощью BitrixEnv/BitrixVM.Ведь теперь для каждого сайта определены свои настройки почты.
Или все также нужно создавать свой файл cron_events.php для запуска?
Почтовые сообщения отправятся корректно и стандартным скриптом. А вот если вы хотите перевести на крон всех агентов, в том числе и периодических то вам необходимо делать свой файл.
Почтовые сообщения отправятся корректно и стандартным скриптом.
Нет, в том то и дело, что не отправляется корректно по умолчанию. По крайней мере в версии 5.1.2 веб окружения. Вынуждены были перевести отправку почты с агента на хит. Ведь по умолчанию в веб окружении почта отправляется на агенте. Тикет №592787 в техподдержке.
Или вместо "bitrix" указать имя пользователя от которого работает сайт. Я пишу просто применительно к виртуальной машине Битрикс.
У некоторых еще может быть проблема если эта строка последняя в файле crontab, кто-то рекомендовал добавить две пустые строки в конец файла (у меня проблем не было, но видел тех кому помогало).
Мунасипов Сергей написал: Так работать не будет. Обязательно нужно добавить так: */5 * * * * bitrix /usr/bin/php -f /home/bitrix/www/bitrix/php_interface/cron_events.php Или вместо "bitrix" указать имя пользователя от которого работает сайт. Я пишу просто применительно к виртуальной машине Битрикс.
У некоторых еще может быть проблема если эта строка последняя в файле crontab, кто-то рекомендовал добавить две пустые строки в конец файла (у меня проблем не было, но видел тех кому помогало).
Алиев Мурад, Так это же не команда, эту строчку надо прописать в файле /etc/crontab
Для удобства можно сначала установить файловый менеджер командой yum install mc Потом открыть его командой mс и найти там нужный файл, нажать F4 и отредактировать его, прописав необходимую строку
Не могу понять, что делает флаг "agents_use_crontab"
1// Если мы выполняем COption::SetOptionString("main", "agents_use_crontab", "Y"), то на хитах остануться работать только периодические агенты (т.е. эта строка подключает крон для непериодических агентов?).
2// А если выполним COption::SetOptionString("main", "agents_use_crontab", "N"), то что?.... по смыслу ведь вроде получается наоборот: мы ОТКЛЮЧАЕМ, а не включаем использование крона...
Не могу понять, что делает флаг "agents_use_crontab"
Влад Седой , всё верно. $agents_use_crontab - неудачное, непонятное название опции. Влияет на то, будет ли ли функция CheckAgents вызывать периодические или непериодические агенты. Почитайте статью Выполнение всех агентов на cron. Чтобы почта была на хитах, я постарался разобраться с настройками.
Советую, чтобы не забивать себе голову, использовать модуль Агенты на кроне.
Добрый день, долго отрабатывала функция mail, думал, этот пост поможет, уже разобрался в чем дело, теперь интересует, если я все изменения убрал кроме:
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».