SchedulerLock
时间: 2023-08-17 15:11:52 浏览: 113
老外的 spring scheduler 实例 使用注解,比较全比较实用
SchedulerLock是一个用于实现分布式锁的功能。通过在定时任务上添加@EnableSchedulerLock注解,可以启用ShedLock锁的功能。该注解需要与SchedulerLockConfigurationSelector一起使用,通过@Import导入该类。\[1\]
在SchedulerProxyLockConfiguration类中,创建了一个切面SchedulerProxyLockConfiguration,其中定义了Pointcut和advice,用于增强TaskScheduler调度的三个方法schedule、scheduleAtFixedRate、scheduleWithFixedDelay。这个切面会在任务调度时进行加锁操作。\[2\]
SchedulerLock利用MySQL实现了分布式锁。在抢锁时,通过插入或更新同一个name来进行竞争。在释放锁时,通过设置lock_until来实现锁的释放。当再次抢锁时,会通过lock_until来判断锁是否已经失效。\[3\]
#### 引用[.reference_title]
- *1* *2* [定时任务锁ShedLock的原理](https://blog.csdn.net/RenshenLi/article/details/121643790)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [SchedulerLock 分布式锁 原理](https://blog.csdn.net/waltonhuang/article/details/106555195)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文