xxl-job 一致性问题

旧街凉风 提交于 2020-11-09 11:23:44

        xxl-job的调度中心为高可用的集群部署,那么是如何保证调度的一致性,不会出现多个机器同时触发一个任务,导致任务重复执行。调度中心通过DB锁,保持集群分布式调度的一致性,一次任务只触发一次。为了避免多个调度器同时调度任务,通过数据库的悲观锁(for update).

 可以参看  JobScheduleHelper类代码

1 setAutoCommit(false)关闭隐式自动提交事务,

2 启动事务select lock for update(显式排他锁) 

3 读db任务信息 -> 拉任务到内存时间轮 -> 更新db任务信息

4 commit提交事务,同时会释放for update的排他锁(悲观锁)

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!