Расширенные настройки
Настройки тайм-аута
Начиная с версии 2.1.0, рабочие процессы поддерживают настройку тайм-аута, которая ограничивает максимальную длительность одного выполнения от начала обработки до завершения. Настройки тайм-аута помогают предотвратить ситуацию, когда рабочий процесс бесконечно занимает ресурсы выполнения из-за долгих операций, ожидания ручной обработки или ожидания внешнего обратного вызова.
В диалоговом окне создания или редактирования рабочего процесса разверните «Расширенные параметры», чтобы настроить «Настройки тайм-аута»:

Доступные параметры:
- Укажите
0, чтобы не ограничивать тайм-аут (значение по умолчанию). - Укажите значение больше
0, чтобы включить ограничение тайм-аута. В интерфейсе можно выбрать единицы измерения: секунды, минуты, часы и дни. - Максимальный тайм-аут составляет 180 дней.
Правила отсчёта
Тайм-аут начинает отсчитываться, когда рабочий процесс впервые входит в процессор. После срабатывания рабочего процесса время ожидания в очереди на планирование или хранения для отложенного запуска не учитывается в тайм-ауте.
После входа в процессор тайм-аут продолжает отсчитываться. В него входит фактическое время выполнения узлов, а также время узлов, которые уже перешли в состояние ожидания, нап ример ручная обработка, утверждение, задержка или ожидание внешнего обратного вызова. Тайм-аут не приостанавливается, когда рабочий процесс ожидает действия пользователя.
Крайний срок тайм-аута определяется при запуске данного выполнения. Изменение настроек тайм-аута рабочего процесса влияет только на выполнения, которые начнут обрабатываться после этого; уже начатые выполнения не пересчитываются.
Обработка после тайм-аута
Если к моменту достижения тайм-аута выполнение ещё не завершено, система прекращает это выполнение:
- Статус в истории выполнения становится «Прервано», а причина завершения отображается как «Тайм-аут».
- Задачи узлов, которые выполняются или ожидают, помечаются как «Прервано».
- Последующие узлы больше не выполняются.
- Если у этого выполнения есть выполняющиеся подпроцессы, они также прерываются вместе с родительским выполнением.
Например:
- Если узел цикла выполняет очень длинный цикл, а обработка внутри цикла занимает много вре мени, из-за чего весь узел цикла превышает заданный тайм-аут, текущий выполняемый узел цикла и его внутренние узлы будут принудительно завершены, а последующие узлы больше не будут выполняться.
- Если узел ручной обработки или утверждения ожидает долгое время и превышает заданный тайм-аут, текущий ожидающий узел будет принудительно завершён, последующие узлы больше не будут выполняться, а связанные задачи будут отменены.
Настройки тайм-аута являются глобальным ограничением для всего выполнения рабочего процесса, а не тайм-аутом отдельного узла. Если нужно ограничить только время ожидания конкретного узла, например HTTP-запроса или JavaScript-скрипта, используйте собственные настройки тайм-аута этого узла.
Если нужно реализовать бизнес-обработку с ограничением по времени, например «пометить заявку как просроченную, если никто не обработает её в течение 10 минут», обычно следует использовать узел задержки вместе с параллельными ветками для организации последующей обработки. Глобальный тайм-аут напрямую прекращает текущее выполнение, поэтому подходит как защитный механизм, но не для выполнения последующих бизнес-веток.
Режим выполнения
Рабочие процессы выполняются либо асинхронно, либо синхронно — в зависимости от типа триггера, выбранного при создании. В асинхронном режиме после срабатывания события рабочий процесс попадает в очередь и выполняется по одному в фоне планировщиком. В синхронном режиме после срабатывания очередь планировщика не используется: выполнение начинается сразу, а по завершении сразу возвращается результат.
По умолчанию асинхронно выполняются «События коллекции», «Событие после действия», «Пользовательское событие», «Событие по расписанию» и «Одобрение». По умолчанию синхронно выполняются «Событие до действия». «События коллекции», «Событие после действия» и «Пользовательское событие» поддерживают оба режима — выбрать можно при создании рабочего процесса:

Из-за особенностей синхронного режима в синхронных рабочих процессах нельзя использовать узлы, которые переходят в состояние «Ожидание», например узел «Ручная обработка».
Автоудаление истории запусков
Если рабочий процесс срабатывает часто, можно настроить автоудаление истории запусков, чтобы снизить «шум» и уменьшить нагрузку на хранилище базы данных.
Удалять ли историю запусков автоматически, также можно настроить в диалогах создания и редактирования рабочего процесса:

Автоудаление можно настраивать по статусу результата выполнения. В большинстве случаев рекомендуется отмечать только статус «Завершён», чтобы сохранять записи неуспешных запусков для последующей диагностики.
Во время отл адки рабочего процесса лучше не включать автоудаление истории запусков — так по истории можно проверить, соответствует ли логика выполнения ожиданиям.
Удаление истории рабочего процесса не уменьшает счётчик его запусков.

