Bitrix не работают агенты

Не выполняется агент

Но как только я создаю агент:

Она не выполняется.

Функция размещена в /bitrix/php_interface/init.php и по идеи должны быть доступна всегда, однако такое ощущение, что агент ее просто не видит.

Хм. А зачем?
Функция у меня в /bitrix/php_interface/init.php, он по идеи подключается по любому.
Сказать, что не доступна какая-то функция используемая в ней, тоже нельзя, потому, что даже в таком виде:

агент ее не запускает.

Да и страница на которой я тестирую ее выполнения выглядит так:

Ах вот как? Агент запускается в другом окружении?
Значит добавление CModule::IncludeModule(‘iblock’) в функцию или просто указание моделя iblock в параметре агента Модуль, должно решить проблему?

Но однако же и функция

Конечно. Оно не обновляется. Это не правильно? (Я до сегодняшнего дня агенты и не использовал ни разу.)

Да и моя функция не работает даже с добавлением iblock

Цитата
Если функция-агент принадлежит модулю, то перед ее выполнением, этот модуль будет автоматически подключаться, а именно будет подключаться файл /bitrix/modules/ ID модуля /include.php , в этом случае необходимо убедиться, что функция-агент будет доступна после подключения этого файла.
Если функция-агент не принадлежит ни одному из модулей, то ее необходимо разместить в файле /bitrix/php_interface/init.php . Данный файл автоматически подключается в прологе.

Способ есть — сначало отладить функцию, запускаемую агентом БЕЗ агента) Это единственный вариант.

Ну и еще можно писать сообщения в лог файл .

У меня локально агент отработал раз 10 и внезапно перестал. Время запуска давно прошло, интервал 10 сек.
Как обычно, пришлось лезть в кишки битрекса -__-
Агенты для запуска выбираются в месте bitrix/modules/main/classes/mysql/agent.php:121

смотрим этот массив и попал ли наш агент в него

Если нет — то находим наш агент в таблице `b_agent` и удаляем у него `DATE_CHECK`

Так же если не запускаются агенты, то может нужно удалить из /bitrix/php_interface/dbconn.php установку константы

Если всё равно не запускаются — изменить в таблице `b_option` у записи с NAME `check_agents` на `Y`.

Изначально проверить пытаются ли вообще запуститься можно в файле bitrix/modules/main/include.php:259

Всё это относится к агентам, отрабатываемым по хитам. Может быть по крону тоже, не проверял. У меня вышло так — на сервере они работают на кроне, настраивал не я, а локально не хочу заморачиваться с кроном, решил сделать на хитах, и вот пришлось решать почему не работают.
Про `check_agents` спасибо https://pai-bx.com/wiki/1c-bitrix/2327-return-agents-on-hits/

До этого бывало сталкивался пару раз с тем, что агент переставал работать. Я начинал копаться почему, но потом он внезапно начинал работать и я успокаивался. Видимо это было связано именно с `DATE_CHECK`, ибо в этот раз она почему-то стояла где-то на полчаса больше -___- Почему-то так сильно много ибо в коде она сама иногда выставляется на 10 мин.

Выяснилось что `DATE_CHECK` остаётся если произошла какая-то ошибка! Приходится вручную удалять её -___-

Для удобства, для меня проще был узнать отрабатывает агент или нет — создавать файл в той же директории что и сам скрипт запуска агента, сделал так:

Источник

Созданный агент не запускается по времени

Созданный агент не запускается по времени.
Собственно агент который я добавил и функцию для которого объявил в init.php не запускается на выполнение по расписанию на локальной машине. В чем может быть ошибка вот параметры агента

ID: 41
Функция агента: My_Agent_F unction();
[ID] Логин: Система
Активность: Да
Следующий запуск: 27.04.2012 17:15:00
Интервал: 86400

Вот файл init.php

Цитата
Сергей Фролов пишет:
я запускаю бизнес процесс, мне его нужно запускать по расписанию
Цитата
Николай Семенцов пишет:
Проблема такая же, не запускается агент

Вот код агента он находится в файле init.php
function Postponedel() <
CModule::IncludeModule(«iblock»;);
GLOBAL $DB;
$iblock = 25; // блок с отложенным товарами
$arFilter = array(
«IBLOCK_ID» => intval($iblock),
» date($DB->DateFormatToPHP(CLang::GetDateFormat(«SHORT»;)), time()-(30*(24*60*60)))
);
$arSelect = array(
«ID»,
);
$db_elements = CIblockElement::GetList(array(), $arFilter, false, false, $arSelect);
// $db_elements->SetUrlTemplates($arParams[«DETAIL_URL»]);

$arrPostponeId = array();
while ($arElement = $db_elements->GetNext())
<
CIBlockElement::Delete($arElement[‘ID’]);
>
return «Postponedel();»;
>

Настройки агента в системе битрикс
ID: 207
Функция агента: Postponedel();
[ID] Логин: Система
Активность: Да
Следующий запуск: 15.07.2012 01:01:25
Интервал: 86400

Время следующего запуска ставлю наперед но все равно нет запуска скрипта, а если я просто ставлю на страницу Postponedel(); то скрипт отрабатывает. Хостинг timeweb.ru , стандартные агенты работают хорошо.
В чем может быть проблема ?

Та же ерунда, агент никак не хочет запускаться.
В доке все написано так мутно, вот например:
1. Зачем нужен datecheck? Есть же next_exec который указывает на дату запуска, смысл не ясен.
2. От какого времени пляшет запускалка агентов? Серверного? PHP? Локальной машины с которой ставится агент?
3. Где можно увидеть лог запусков анентов и понять почему тот или иной не запускается?
4. Что происходит если дата запуска просрочена? Тоесть хит был после или cron задание запустилось позже необходимого времени
5. В доке четко не прописано как тестировать агент, если он не запускается

Сейчас имею проблему, создается агент программно и не запускается:

Продублирую ибо в поиске есть 2 темы.

У меня локально агент отработал раз 10 и внезапно перестал. Время запуска давно прошло, интервал 10 сек.
Как обычно, пришлось лезть в кишки битрекса -__-
Агенты для запуска выбираются в месте bitrix/modules/main/classes/mysql/agent.php:121

смотрим этот массив и попал ли наш агент в него

Если нет — то находим наш агент в таблице `b_agent` и удаляем у него `DATE_CHECK`

Так же если не запускаются агенты, то может нужно удалить из /bitrix/php_interface/dbconn.php установку константы

Если всё равно не запускаются — изменить в таблице `b_option` у записи с NAME `check_agents` на `Y`.

Изначально проверить пытаются ли вообще запуститься можно в файле bitrix/modules/main/include.php:259

Всё это относится к агентам, отрабатываемым по хитам. Может быть по крону тоже, не проверял. У меня вышло так — на сервере они работают на кроне, настраивал не я, а локально не хочу заморачиваться с кроном, решил сделать на хитах, и вот пришлось решать почему не работают.
Про `check_agents` спасибо https://pai-bx.com/wiki/1c-bitrix/2327-return-agents-on-hits/

До этого бывало сталкивался пару раз с тем, что агент переставал работать. Я начинал копаться почему, но потом он внезапно начинал работать и я успокаивался. Видимо это было связано именно с `DATE_CHECK`, ибо в этот раз она почему-то стояла где-то на полчаса больше -___- Почему-то так сильно много ибо в коде она сама иногда выставляется на 10 мин.

Выяснилось что `DATE_CHECK` остаётся если произошла какая-то ошибка! Приходится вручную удалять её -___-

Для удобства, для меня проще был узнать отрабатывает агент или нет — создавать файл в той же директории что и сам скрипт запуска агента, сделал так:

Источник

Не работают агенты через cron

Установил на чистый сервер Bitrix virtual appliance version 7.4.3
CentOS Linux release 7.8.2003 (Core)

Агенты при этом не выполняются. Дополнительно добавил задание в крон по инструкции https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=43&LESSON_ID=2943

Но агенты не выполняются, проверяют через Настройки > Настройки продукта> Агенты.
Подскажите пожалуйста, как исправить?

Крон 100% отрабатывает. Проблема не в нем. Пробовал добавить в /home/bitrix/www/local/php_interface/cron_events.php строку с mail() php, письмо по запуску с cron пришло. Что-то с выполнением периодических агентов. Проблем с письмами нет, настроено.

указать
define(«BX_CRONTAB_SUPPORT», true);
define(«BX_CRONTAB», true);

Возможно вы не полностью настроили выполнение ВСЕХ агентов на кроп. А для почты достаточно просто
указать
define(«BX_CRONTAB_SUPPORT», true);
define(«BX_CRONTAB», true);

вот что там. должно быть

*/1 * * * * /usr/bin/php -f /home/bitrix/www/bitrix/php_interface/cron_events.php

*/1 * * * * /usr/bin/php -f /home/bitrix/www/bitrix/modules/main/tools/cron_events.php

Цитата
Евгений Костюк написал:
указать define(«BX_CRONTAB_SUPPORT», true);define(«BX_CRONTAB», true);

пробовал, результат тот же

Цитата
Евгений Костюк написал:
А еще нужно помнить что крон нужно запускать. от пользователя bitrix. если вы от рута редактируете крон, то crontab -e -u bitrix

именно от bitrix работает

Цитата
Евгений Костюк написал:
вот что там. должно быть*/1 * * * * /usr/bin/php -f /home/bitrix/www/bitrix/php_interface/cron_events.phpа у вас*/1 * * * * /usr/bin/php -f /home/bitrix/www/bitrix/modules/main/tools/cron_events.php
Цитата
Евгений Костюк написал:
а сам почтовый ящик вы настроили? Это меню виртуальной машина пункт 6, потом 4
Цитата
Александр Гусев написал:
Обобщенное решение для выполнения всех агентов из-под cron
Цитата
Александр Гусев написал:
Обобщенное решение для выполнения всех агентов из-под cron

не помогает. Агенты замерли, хоть крон и отрабатывает задачи.

На днях продлили лицензию битрикса и обновили, в том числе vmbitrix и php до 7.4.16. После чего перестал работать крон.

В логах была ошибка

Почта настроена. Отправка через mail() происходит.

Источник

cron не выполняет скрипт php(агенты на крон) VMBitrix 7.4.0

Второй день бьюсь не могу заставить работать.

логи крона
Jan 7 12:30:01 server1 CROND[7293]: (bitrix) CMD (-f /home/bitrix/www/bitrix/modules/main/tools/cron_events.php && < /usr/bin/php -f /home/bitrix/www/bitrix/modules/main/tools/cron_events.php; >>/tmp/scri$

в файле ошибок — пусто.

когда выполняю содержимое файла cron_events.ph через php-консоль все отрабатывает

содержимое крона /etc/cron.d/bx_bitrixdb

# Ansible managed
# cron tasks for site default
#

[root@server1 /]# ls -l /home/bitrix/www/bitrix/modules/main/tools/cron_events.php;
-rwxr—rw- 1 bitrix bitrix 878 Jan 7 12:18 /home/bitrix/www/bitrix/modules/main/tools/cron_events.php

пи выполнении команды по ssh
/usr/bin/php -f /home/bitrix/www/bitrix/modules/main/tools/cron_events.php
в консоли выводится содержимое html

VMBitrix 7.4.0, веб окружение установлено.

1) Если у вас bitrix env то ничего делать то и не нужно.
В /etc/crontab уже есть запись:

2) Если вы решили «ручками» включить пункт меню в настройках и дописать в файл /etc/cron.d/bx_bitrixdb свои правила, то запускать их следует от пользователя bitrix (UID: 600). Открываем доку и читаем раздел про права доступа.

3) По этой инструкции имеет смысл делать только раздел «Обобщенное решение для выполнения всех агентов из-под cron»

откатился до состояния с сообщением
Выполнение агентов на cron Замечание. Агенты выполняются на хитах, рекомендуется перевести выполнение агентов на cron

добавил строку в /home/bitrix/www/bitrix/php_interface/dbconn.php

Теперь при проверке

Проверка на наличие неотправленных сообщений Ошибка! Есть ошибки при отправке системных почтовых сообщений, число неотправленных сообщений: 2
Определена константа BX_CRONTAB_SUPPORT в /bitrix/php_interface/dbconn.php, при этом должен быть настроен вызов агентов на cron.

В логах событие отрабатывается. сообщения не приходят

Источник

Не работают агенты через cron

Установил на чистый сервер Bitrix virtual appliance version 7.4.3
CentOS Linux release 7.8.2003 (Core)

Агенты при этом не выполняются. Дополнительно добавил задание в крон по инструкции https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=43&LESSON_ID=2943

Но агенты не выполняются, проверяют через Настройки > Настройки продукта> Агенты.
Подскажите пожалуйста, как исправить?

Крон 100% отрабатывает. Проблема не в нем. Пробовал добавить в /home/bitrix/www/local/php_interface/cron_events.php строку с mail() php, письмо по запуску с cron пришло. Что-то с выполнением периодических агентов. Проблем с письмами нет, настроено.

указать
define(«BX_CRONTAB_SUPPORT», true);
define(«BX_CRONTAB», true);

Возможно вы не полностью настроили выполнение ВСЕХ агентов на кроп. А для почты достаточно просто
указать
define(«BX_CRONTAB_SUPPORT», true);
define(«BX_CRONTAB», true);

вот что там. должно быть

*/1 * * * * /usr/bin/php -f /home/bitrix/www/bitrix/php_interface/cron_events.php

*/1 * * * * /usr/bin/php -f /home/bitrix/www/bitrix/modules/main/tools/cron_events.php

Цитата
Евгений Костюк написал:
указать define(«BX_CRONTAB_SUPPORT», true);define(«BX_CRONTAB», true);

пробовал, результат тот же

Цитата
Евгений Костюк написал:
А еще нужно помнить что крон нужно запускать. от пользователя bitrix. если вы от рута редактируете крон, то crontab -e -u bitrix

именно от bitrix работает

Цитата
Евгений Костюк написал:
вот что там. должно быть*/1 * * * * /usr/bin/php -f /home/bitrix/www/bitrix/php_interface/cron_events.phpа у вас*/1 * * * * /usr/bin/php -f /home/bitrix/www/bitrix/modules/main/tools/cron_events.php
Цитата
Евгений Костюк написал:
а сам почтовый ящик вы настроили? Это меню виртуальной машина пункт 6, потом 4
Цитата
Александр Гусев написал:
Обобщенное решение для выполнения всех агентов из-под cron
Цитата
Александр Гусев написал:
Обобщенное решение для выполнения всех агентов из-под cron

не помогает. Агенты замерли, хоть крон и отрабатывает задачи.

На днях продлили лицензию битрикса и обновили, в том числе vmbitrix и php до 7.4.16. После чего перестал работать крон.

В логах была ошибка

Почта настроена. Отправка через mail() происходит.

Источник

Читайте также:  Как настроить токен контур
Оцените статью