Читаю эту инструкцию: и хочу настроить выполнение всех агентов на кроне.
Для этого следуя инструкции делаю:
Сразу же возникает первый вопрос - почему для того чтобы агенты выполнялись на кроне настройку agents_use_crontab нужно установить в N? Народ когда-нибудь узнает имя сотрудника который это придумал?
И снова тот же вопрос - почему для того чтобы все агенты выполнялись на кроне, необходимо ОТКЛЮЧИТЬ кронтаб и поддержка кронтаб? Чтобы враги не догадались? Антисанкции?
Нет конечно - читая дальше я догадываюсь что эти контстанты нужны были чтобы ядро "видело" запуск по крону на хите. Но получается как-то запутано.
А дальше мы должны создать файл запуска агентов, и поставить его в крон... но подождите - у меня же BitrixVM и там уже добавлен в крон /home/bitrix/www/bitrix/modules/main/tools/cron_events.php - наверно там все сделано? Ах - нет - там только CEvent::CheckEvents();
А как же агенты?
Что делать? Править файл ядра? Нельзя. Может /etc/crontab добавить свой все таки скрипт? Не кошерно как-то. Приходится изобретать свой способ: if (defined("BX_CRONTAB") && BX_CRONTAB == true) @include("agents.php"); в init.php и уже там запускаем агенты.
Фух... наконец-то заработало.
А как это предполагалось настраивать вообще?
Или что? Ой, нет - оказывается еще агент может перестать выполнятся если он упал прошлый раз и для возобновления нужно удалить /bitrix/managed_cache, а иногда даже пересоздать агент.
А иногда они могут перестать выполнятся все просто так, видимо для веселья, правда в этом случае помогает опять же удаление /bitrix/managed_cache.
Агенты - важные переодические задачи и они должны выполнятся. И раньше это даже работало. Есть ли способ заставить агенты выполнятся надежно и хотя бы высылать админу письмо если что-то пошло не так?
Для этого следуя инструкции делаю:
| Код |
|---|
COption::SetOptionString("main", "agents_use_crontab", "N");
echo COption::GetOptionString("main", "agents_use_crontab", "N");
COption::SetOptionString("main", "check_agents", "N");
echo COption::GetOptionString("main", "check_agents", "Y");
|
| Цитата |
|---|
| После этого убираем из файла /bitrix/php_interface/dbconn.php определение следующих констант: define("BX_CRONTAB_SUPPORT", true); define("BX_CRONTAB", true); |
Нет конечно - читая дальше я догадываюсь что эти контстанты нужны были чтобы ядро "видело" запуск по крону на хите. Но получается как-то запутано.
А дальше мы должны создать файл запуска агентов, и поставить его в крон... но подождите - у меня же BitrixVM и там уже добавлен в крон /home/bitrix/www/bitrix/modules/main/tools/cron_events.php - наверно там все сделано? Ах - нет - там только CEvent::CheckEvents();
А как же агенты?
Что делать? Править файл ядра? Нельзя. Может /etc/crontab добавить свой все таки скрипт? Не кошерно как-то. Приходится изобретать свой способ: if (defined("BX_CRONTAB") && BX_CRONTAB == true) @include("agents.php"); в init.php и уже там запускаем агенты.
Фух... наконец-то заработало.
А как это предполагалось настраивать вообще?
Или что? Ой, нет - оказывается еще агент может перестать выполнятся если он упал прошлый раз и для возобновления нужно удалить /bitrix/managed_cache, а иногда даже пересоздать агент.
А иногда они могут перестать выполнятся все просто так, видимо для веселья, правда в этом случае помогает опять же удаление /bitrix/managed_cache.
Агенты - важные переодические задачи и они должны выполнятся. И раньше это даже работало. Есть ли способ заставить агенты выполнятся надежно и хотя бы высылать админу письмо если что-то пошло не так?