在工作流自己的定时任务中我们部署了多个实例的情况下,他扫描的时候会同时扫描或者执行的时候会同时执行,这里采用分布式锁(redis)的方式解决该问题;
一、执行方式
查看AcquireTimerJobsRunnable
这个类中的run
方法
核心就在图中画方框的位置,这里会将可以执行的任务act_ru_timer_job
这个表里面的数据移动到act_ru_job
这个表里面。就结束了,所以我们需要修改的点这里是一个
这里我解释一下这两张表的作用
act_ru_timer_job
-所有的定时任务
act_ru_job
-可执行的job
还有一个就是这里ExecuteAsyncRunnable
这个类里面
这里回去扫描act_ru_job
这个表里面,并且扫描到了有需要执行的则执行它
这里也是改造点
下面附上类
完整代码压缩包
工作流定时任务部署多实例时,多次执行
最新推荐文章于 2023-11-14 10:01:11 发布