作业执行器

作业执行器(Job Executor) 是在流程引擎中管理和执行异步作业的关键组件。 能处理需要在主程流之外执行的作业,例如定时器、异步延续和其他后台流程等。 通过分担主流程的这些任务,作业执行器可以确保主执行线程能保持响应和高效。

作业执行器在多线程环境中运行,可以同时处理多个作业。 从数据库中获取作业,然后执行并更新作业状态。 此机制对于在业务流程中实现延迟任务和计划事件等功能至关重要。

总体而言,作业执行器能高效管理后台作业并确保流程顺利执行, 增强了流程引擎的性能和可扩展性。

作业类型

作业执行器管理的任务主要有两种类型:

  • 定时器作业:这些作业在特定时间触发, 通常与 BPMN 模型中的边界事件关联。

  • 异步作业:在任务带 flowable:async="true" 属性时创建, 表示需要异步执行。

执行过程

  • 当流程实例达到需要异步作业或定时器的位置时, 作业执行器将相应的条目插入到 ACT_RU_JOB 表中。

  • 对于定时器作业,有一个线程会定期检查到期的作业并触发这些作业。

  • 对于异步作业,一旦创建作业的 API 调用成功后, 事务监听器就会激活作业执行器去执行新建的作业。