И снова делимся опытом использования агентов в CMS Bitrix


 Во время интеграции одного из социальных проектов был реализован функционал раздачи персональных номеров для пользователей с помощью агентов.

 Скрипт достаточно ресурсный, в плане того, что для его выполнения нужны достаточные ресурсы сервера.

 Было решено оформить его в функцию и реализовать агентом, чтоб заказчик сам мог регулировать его запуски, а так же саму его активность. (агенты конечно же запускаются и выполняются по крону)

 Но т.к. его выполнение подразумевало обращение к серверам платежной системы, и после проверки присвоение номера.

 Все действия тщательно логировались и было непонятно, по какой причине те записи, которым присвоены были номера, через 10 минут снова появлялись в логах и фигурировали с другим номером.

 Как оказалось, битрикс чекает выполнение агента на его периодичность. Смотрит его флаг, запущен он или нет. И если он запущен, но со времени установки флага прошло 10 минут, битрикс запускает его заново.

 Таким образом, если ваш скрипт агента выполняется на бэке более 10 минут (в нашем случае доходило до 40 мин), то каждые 10 минут он будет запускаться снова и захватывать те записи, которые есть в обработке предыдущего скрипта.

 Наша рекомендация - все сложные операции выполнять по крон заданию как отдельную задачу.

 Делитесь вашим опытом.

Комментарии

Оценка:
Защита от автоматических сообщений
CAPTCHA
Введите слово на картинке