← Назад к заметкам

Заметки

Паузы в бизнес-процессах могут срабатывать с задержкой

Почему пауза в бизнес-процессе или роботе 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 и путь к сайту нужно заменить на значения конкретного сервера.