什么是ShedLock
ShedLock是一个在分布式环境中使用的定时任务框架,用于解决在分布式环境中的多个实例的相同定时任务在同一时间点重复执行的问题,解决思路是通过对公用的数据库中的某个表进行记录和加锁,使得同一时间点只有第一个执行定时任务并成功在数据库表中写入相应记录的节点能够成功执行而其他节点直接跳过该任务。当然不只是数据库,目前已经实现的支持数据存储类型除了经典的关系型数据库,还包括MongoDB,Zookeeper,Redis,Hazelcast。
如何使用
ShedLock采用非侵入式编程的思想,通过注解的方式来实现相应的功能。
要使用ShedLock,请执行以下操作
- 启用并配置计划锁定
- 注释您的计划任务
- 配置锁提供程序
1.启用并配置计划锁定
首先,引入依赖
< dependency >
< groupId > net.javacrumbs.shedlock </ groupId >
< artifactId > shedlock-spring </ artifactId >
< version > 2.5.0 </ version >
</ dependency >
现在我们需要将库集成到Spring中。为了启用计划锁定,请使用@EnableSchedule