Сразу же возникает первый вопрос - почему для того чтобы агенты выполнялись на кроне настройку agents_use_crontab нужно установить в N? Народ когда-нибудь узнает имя сотрудника который это придумал?
Цитата
После этого убираем из файла /bitrix/php_interface/dbconn.php определение следующих констант:
И снова тот же вопрос - почему для того чтобы все агенты выполнялись на кроне, необходимо ОТКЛЮЧИТЬ кронтаб и поддержка кронтаб? Чтобы враги не догадались? Антисанкции?
Нет конечно - читая дальше я догадываюсь что эти контстанты нужны были чтобы ядро "видело" запуск по крону на хите. Но получается как-то запутано.
А дальше мы должны создать файл запуска агентов, и поставить его в крон... но подождите - у меня же 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.
Агенты - важные переодические задачи и они должны выполнятся. И раньше это даже работало. Есть ли способ заставить агенты выполнятся надежно и хотя бы высылать админу письмо если что-то пошло не так?