Вначале немного представлюсь. Меня зовут Рыжонин Николай, в "1С-Битрикс" я курирую направление производительности продуктов компании. Если у вас есть вопросы, предложения или пожелания, касающиеся производительности, обращайтесь e-mail: rns@bitrix.ru
Данная тема уже не раз подымалась (например тут), но тем не менее все таки решил опубликовать обобщенное решения для выполнения всех агентов из под cron.
Для начала полностью отключим выполнение агентов на хите. Для этого выполним следующую команду в php консоли.
После этого все агенты и отправка системных событий будут обрабатывается из под cron, раз в 5 минут. Чтобы не увеличивалась очередь отправки почтовых сообщений, советую изменить параметр отвечающий за количество почтовых событий обрабатываемых за раз. Для этого выполняем в php консоли следующую команду
Спасибо, сделал всё как здесь описано... ан нет, не работает. Оказалось, надо просто-напросто перезапустить Cron командой - service crond restart. А бился ж пол дня, почему не описываете такие мелочи? Сюда же не только Гуру заходят...
п.с. кстати после того как я за комментировал, скрипт запустился и отработал, после чего я раскомментировал строку и все продолжило работать (только теперь уже корректно)
Силуянов Александр, Сначала сделал файл как написано в секции "Создаем файл проверки агентов и рассылки системных сообщений /bitrix/php_interface/cron_events.php (обновлен 10.09.2015)"
Затем добавил в кронтаб в эту строчку: */5 * * * * /usr/bin/php -f /home/bitrix/www/bitrix/php_interface/cron_events.php
Царев Дмитрий, установил модуль "Агенты на кроне" из маркетплейса. В его настройках, внизу написано: Настройка cron
cron — это программа на сервере, которая запускается раз в минуту и выполняет ваши команды в указанное время.
Для работы агентов на кроне необходимо настроить, чтобы стандартный файл Битрикса /bitrix/modules/main/tools/cron_events.php вызывался, например, раз в минуту.
В Виртуальной машине Битрикса ничего не надо делать, там уже есть соответствующая настройка для каждого сайта (файл /etc/crontab). На специализированных хостингах под Битрикс тоже могут быть заранее сделаны настройки.
У вас Виртуальная машина Битрикса версии 7.2.2.
На других хостингах в панели управления укажите что-то вроде: * * * * * /usr/bin/php -f /home/bitrix/www/bitrix/modules/main/tools/cron_events.php
Вместо /usr/bin/php, у вас может быть другой путь. Узнайте у техподдержки вашего хостинга, как правильно настраивать крон, или найдите в часто задаваемых вопросах на сайте хостинга.
Важно. Настройка крона на вашем сервере — это обязанность администратора сервера или техподдержки хостинга. В обязанности разработчика модуля не входит.
_____________________
Может там и не надо ни чего настраивать. Как вообще проверить отрабатывает ли агент на кроне?
Силуянов Александр, судя по всему для вас тема новая и непонятная. Лучше возьмите и передайте задачу толковому админу. Там по этой инструкции (статья) делов на 15 минут, когда работаешь (или работал) с этим ранее. Я все делал на машине из коробки, крон стоит там по дефолту всегда, никакие модули из маркетплейса не устанавливал. Все руками из консоли. Проведение манипуляций без понимания что к чему не приводит (обычно) к хорошему. Вот мой вам совет.
Царев Дмитрий, благодарю вас за совет, но наш it департамент таков, что сами ни хрена не знают и не умеют. До этого все сайты разворачивал на хостинге и проблем с добавлением агентов не испытывал, ибо имеется интерфейс добавления. Сейчас сделал проверку проекта в битриксе - показывает что все ок и агенты выполняются на cron))
Еще раз скажите, пожалуйста, что необходимо сделать ? При запуске агента на почту падает письмо плана "Cron <kurin@kanc> /usr/bin/php -f /var/www/html/kanc-org/local/php_interface/cron_events.php"
Сделал по инструкции, при ручном запуске файла выдаёт ошибку: PHP Parse error: syntax error, unexpected 'class' (T_CLASS), expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$' in /bitrix/modules/main/lib/loader.php on line 578
Силуянов Александр, Да. Так и будет, потому что с 99% вероятностью Вам нужен не crontab root`а, crontab пользователя под которым установлена система. Чаще всего это bitrix, но может быть что угодно. В зависимости от того как установили. У меня это название сайта. Тогда команда должна выглядеть так: crontab -u <имя_пользователя> -e Где -u - это ключ вызывающий crontab конкретного пользователя -e - это ключ, который говорит о том, что Вы хотите его отредактировать. Если хотите через nano, то должно быть так EDITOR=nano crontab -u <имя_пользователя> -e
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».