Столкнулся со следующей проблемой:
Написан модуль, в котором описан статический метод-агент. Суть его состоит в выборке сделок по определенным критерием и создании бизнес-процессов для каждой отобранной сделки.
Запуск агента происходит так:
\Notification\Bitrix\NotificationFunction::agentSendNotifications();
Если запустить в файле отдельном с подключением пролога - все отрабатывает корректно.
В самом методе бизнес-процесс создается следующим образом:
Агент же ведет себя не очевидным образом. После запуска у него задаются следующие поля:
RUNNING = "Y"
RETRY_COUNT = "1"
DATE_CHECK = "Какое-то значение"
И не обновляется дата последнего запуска. Он просто напросто не создается бизнес-процессы, виснет и через какое-то время деактивируется, при том, что повторные запуски не происходят.
Если закомментировать запуск бизнес-процессов - агент отрабатывает корректно (делал логирование, данные по сделкам извлекаются корректные)
Запускаю в отдельном файле - все корректно отрабатывает и бизнес-процессы создаются. Время выполнения - в районе 0.2с, потому проблем с нагрузкой быть не может из-за него.
Отсюда возникает закономерный вопрос:
- Можно ли запускать бизнес-процессы в агенте?
- Если нельзя, то какие есть альтернативы, если нужно для определенных сделок выполнить запуск бизнес-процессов автоматически (количество сделок > 100, ручками везде щелкать не вариант)
Написан модуль, в котором описан статический метод-агент. Суть его состоит в выборке сделок по определенным критерием и создании бизнес-процессов для каждой отобранной сделки.
Запуск агента происходит так:
\Notification\Bitrix\NotificationFunction::agentSendNotifications();
Если запустить в файле отдельном с подключением пролога - все отрабатывает корректно.
В самом методе бизнес-процесс создается следующим образом:
Код |
---|
$arErrorsTmp = []; \CBPDocument::StartWorkflow( self::BIZPROC_ID, //ID бизнес-процесса ["crm", "CCrmDocumentDeal", "DEAL_" . $dealItem['ID']], //Бизнес-процесс для сделок [], $arErrorsTmp ); |
Агент же ведет себя не очевидным образом. После запуска у него задаются следующие поля:
RUNNING = "Y"
RETRY_COUNT = "1"
DATE_CHECK = "Какое-то значение"
И не обновляется дата последнего запуска. Он просто напросто не создается бизнес-процессы, виснет и через какое-то время деактивируется, при том, что повторные запуски не происходят.
Если закомментировать запуск бизнес-процессов - агент отрабатывает корректно (делал логирование, данные по сделкам извлекаются корректные)
Запускаю в отдельном файле - все корректно отрабатывает и бизнес-процессы создаются. Время выполнения - в районе 0.2с, потому проблем с нагрузкой быть не может из-за него.
Отсюда возникает закономерный вопрос:
- Можно ли запускать бизнес-процессы в агенте?
- Если нельзя, то какие есть альтернативы, если нужно для определенных сделок выполнить запуск бизнес-процессов автоматически (количество сделок > 100, ручками везде щелкать не вариант)