Scheduled SchedulerLock 任务调度 (防止多节点任务重复跑)

1.引入jar
<dependency>
   <groupId>net.javacrumbs.shedlock</groupId>
   <artifactId>shedlock-spring</artifactId>
   <version>2.1.0</version>
</dependency>
<dependency>
   <groupId>net.javacrumbs.shedlock</groupId>
   <artifactId>shedlock-provider-jdbc-template</artifactId>
   <version>2.2.0</version>
</dependency>

 

2.@SchedulerLock(name = "xxxTask", lockAtMostFor = 1000 * 60 * 10 , lockAtLeastFor = 1000 * 60 * 2 )  ;

       name  锁名字 ;

       lockAtMostFor  最长锁表时间:(防止节点奔溃,不释放锁)

       lockAtLeastFor 最短锁表时间      防止任务重复跑

@Scheduled(cron = "0 */10 * * * ?")
@SchedulerLock(name = "xxxTask", lockAtMostFor = 1000 * 60 * 10 , lockAtLeastFor = 1000 * 60 * 2 )
@ApiOperation("自动发起")
public void xxx(){

}

 

3.锁提供者(这里是指jdbc ; 数据库方式)

 

@Component
public class lockProvider {


    /**
     * @description:  锁提供者
     * @Author yhy
     * @date 2020/11/10 11:23
     */
    @Bean(name = {"configure2","configure1"})
    public LockProvider lockProvider(DataSource dataSource) {
        return new JdbcTemplateLockProvider(dataSource);
    }
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值