在工作流自己的定时任务中我们部署了多个实例的情况下,他扫描的时候会同时扫描或者执行的时候会同时执行,这里采用分布式锁(redis)的方式解决该问题;
一、执行方式
查看AcquireTimerJobsRunnable这个类中的run方法
核心就在图中画方框的位置,这里会将可以执行的任务act_ru_timer_job这个表里面的数据移动到act_ru_job这个表里面。就结束了,所以我们需要修改的点这里是一个
这里我解释一下这两张表的作用
act_ru_timer_job-所有的定时任务
act_ru_job-可执行的job

还有一个就是这里ExecuteAsyncRunnable这个类里面
这里回去扫描act_ru_job这个表里面,并且扫描到了有需要执行的则执行它
这里也是改造点

下面附上类
完整代码压缩包
工作流定时任务部署多实例时,多次执行
最新推荐文章于 2025-05-15 23:49:28 发布
本文介绍了一种使用Redis分布式锁来确保在多实例环境下定时任务能够有序执行的方法。通过改造AcquireTimerJobsRunnable与ExecuteAsyncRunnable类,实现了定时任务从act_ru_timer_job表向act_ru_job表迁移,并确保后者中的任务被正确执行。

758

被折叠的 条评论
为什么被折叠?



