生成Process的第一个Job

在异步的创建Process Instance时,会执行StartProcessInstanceAsyncCmd这个命令。
该命令在创建流程实例的情况下,也创建了该流程的第一个Job

Job的执行步骤

  1. 查询出待执行的Jobs
  2. 提交待执行的Jobs到AsyncExecutor

任务是如何查询出来的?

启动AcquireAsyncJobsDueRunnable线程

在Process Engine启动时,会单独启动一个线程来查找待执行的Jobs,
这些线程的启动调用链如下:
AbstractAsyncExecutor.start()

AcquireAsyncJobsDueRunnable定期获取待执行的Jobs

间隔时间是动态决定的,默认的下一次执行最长等待时间是5s

在启动完线程之后,就会不断循环执行线程中定义的核心逻辑,
调用链如下:
AcquireAsyncJobsDueRunnable.run()
--> AcquireAsyncJobsDueRunnable.executeAcquireCycle(xxx)
--> AcquireAsyncJobsDueRunnable.acquireAndExecuteJobs(xxx)
--> MybatisJobDataManager.findJobsToExecute()
--> Job.xml.selectJobsToExecute()


水一水
39 声望5 粉丝

总结经验,提升自己