生成Process的第一个Job
在异步的创建Process Instance时,会执行StartProcessInstanceAsyncCmd这个命令。
该命令在创建流程实例的情况下,也创建了该流程的第一个Job
Job的执行步骤
- 查询出待执行的Jobs
- 提交待执行的Jobs到AsyncExecutor
任务是如何查询出来的?
启动AcquireAsyncJobsDueRunnable线程
在Process Engine启动时,会单独启动一个线程来查找待执行的Jobs,
这些线程的启动调用链如下:
AbstractAsyncExecutor.start()
AcquireAsyncJobsDueRunnable定期获取待执行的Jobs
间隔时间是动态决定的,默认的下一次执行最长等待时间是5s
在启动完线程之后,就会不断循环执行线程中定义的核心逻辑,
调用链如下:
AcquireAsyncJobsDueRunnable.run()
--> AcquireAsyncJobsDueRunnable.executeAcquireCycle(xxx)
--> AcquireAsyncJobsDueRunnable.acquireAndExecuteJobs(xxx)
--> MybatisJobDataManager.findJobsToExecute()
--> Job.xml.selectJobsToExecute()
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。