Заметки
Паузы в бизнес-процессах могут срабатывать с задержкой
Почему пауза в бизнес-процессе или роботе Bitrix24 может выполниться позже указанного времени.
Пауза в бизнес-процессе не гарантирует выполнение ровно в указанную минуту. Если на портале нет активности или неправильно работают агенты, следующий шаг может запуститься позже.
Проблема
В бизнес-процессе или роботе стоит пауза до нужного времени. Время наступает, но следующее действие выполняется не сразу.
Пауза в бизнес-процессе может зависеть от хитов и работы агентов. Поэтому на портале без регулярной активности она не всегда срабатывает точно по времени.
Обычно цепочка такая:
- в бизнес-процессе настроена пауза до даты или времени;
- указанное время уже наступило;
- на портал в этот момент никто не заходит;
- следующий шаг не запускается сразу;
- после появления активности или запуска агента процесс продолжает выполнение.
Из-за этого пауза может выглядеть как ошибка сценария, хотя сам бизнес-процесс просто не получил запуск следующего шага вовремя.
Чаще всего задержка заметна в сценариях с ожиданием:
- пауза в бизнес-процессе до конкретной даты;
- робот с отложенным выполнением;
- создание задачи после ожидания;
- уведомление после паузы;
- REST-действие после ожидания;
- цепочка автоматизации, где следующий шаг должен выполниться строго по времени.
Особенно часто это видно на порталах, где нет постоянной работы сотрудников в интерфейсе: например, портал используется в основном как фоновая автоматизация.
Причина
Пауза — это не отдельный постоянно работающий процесс. После ожидания выполнение продолжается механизмами Bitrix24, которые зависят от хитов и агентов.
Паузы в бизнес-процессах могут выполняться на хитах. Если портал почти никто не открывает, следующее действие после паузы может запуститься позже указанного времени.
Для небольших порталов это не всегда очевидно. CRM и роботы настроены, но пользователей, которые регулярно заходят в интерфейс, может не быть.
В таком случае проблема не в самой паузе и не обязательно в логике бизнес-процесса. Чаще нужно смотреть, есть ли активность на портале и как запускаются агенты.
После паузы бизнес-процесс продолжает работу через агенты. Это уже не тот же самый контекст, в котором пользователь вручную запустил или изменил элемент.
Это может влиять не только на время выполнения, но и на действия после паузы: уведомления, REST-вызовы, работу с датами и места, где важен пользовательский контекст.
Если пауза опаздывает
Если паузы регулярно срабатывают позже ожидаемого времени, начните с активности на портале и запуска агентов.
Если портал используется почти без живых пользователей, для проверки можно создать регулярную активность в интерфейсе.
Минимальная проверка:
- зайти на портал пользователем;
- открыть CRM или другую страницу портала;
- посмотреть, продолжили ли выполнение зависшие паузы;
- сравнить время срабатывания до и после такой активности.
Это не полноценное решение, но быстрый способ проверить гипотезу. Если после активности процессы продолжаются, дальше нужно смотреть агенты и cron.
Для коробочного Bitrix24 нормальный вариант — проверить выполнение агентов и при необходимости перенести их запуск на cron.
В коробочной версии имеет смысл посмотреть:
- агенты выполняются на хитах или через cron;
- нет ли накопившихся невыполненных агентов;
- настроен ли запуск
cron_events.php; - нет ли ошибок в cron-заданиях;
- не отключены ли агенты на хитах без рабочей замены через cron.
Пример cron-задания для коробочного портала:
*/1 * * * * /usr/bin/php -f /home/bitrix/www/bitrix/modules/main/tools/cron_events.php Путь к PHP и путь к сайту нужно заменить на значения конкретного сервера.