Исполнитель Задач

Исполнитель задач (Job Executor) отвечает за управление и выполнение асинхронных задач. Он обрабатывает такие задачи, как таймеры, асинхронные продолжения и другие фоновые процессы, которые необходимо выполнять вне основного потока процесса. Перенос задач на исполнитель задач обеспечивает сохранение отзывчивости и эффективности основного потока выполнения.

Исполнитель задач работает в многопоточной среде, что позволяет ему обрабатывать несколько задач одновременно. Он извлекает задачи из базы данных, выполняет их и обновляет их статус соответственно. Этот механизм необходим для реализации таких функций, как отложенные задачи и запланированные события в бизнес-процессах.

Типы Задач

Исполнитель задач берёт на себя два основных типа задач:

  • Timer Jobs: Эти задачи запланированы на выполнение в определенное время, часто связанные с пограничными событиями в моделях BPMN.

  • Асинхронные задачи: Создаются, когда задача помечена атрибутом flowable:async="true", указывающим на то, что она должна выполняться асинхронно.

Поток Выполнения

  • Когда экземпляр процесса достигает точки, где необходима асинхронная задача или таймер, исполнитель задач добавляет соответствующую запись в таблицу ACT_RU_JOB.

  • Для задач с таймером поток периодически проверяет задачи, которые должны быть выполнены, и запускает их соответственно.

  • Для асинхронных задач, как только API-вызов для создания задачи успешно завершен, слушатель транзакций запускает исполнителя задач, чтобы выполнить эту задачу.