用shedlock实现分布式定时任务锁
这个shedlock针对的是spring自带的schedule。 假设你有两台服务器,部署的是同一个项目,如果每个项目都开启定时器任务,那么定时任务会重复执行,占用资源甚至造成数据错乱。或许你可以通过配置文件来开启其中一个项目的定时任务,另一个项目的定时任务不执行。但是这个问题是这个定时任务始终会在同一个服务器上执行,会给这一台服务器造成压力。 解决办法:引入 shedlock maven 依赖 <dependency> <groupId>net.javacrumbs.shedlock</groupId> <artifactId>shedlock-spring</artifactId> <version>2.2.0</version> </dependency> <dependency> <groupId>net.javacrumbs.shedlock</groupId> <artifactId>shedlock-provider-jdbc-template</artifactId> <version>2.2.0</version> </dependency> 代码开发 //定义一个配置类 @Configuration public class ScheduledLockConfig { @Bean public LockProvider lockProvider