@Scheduled注解用法

项目开发中,经常会遇到定时任务的场景,Spring提供了@Scheduled注解,方便进行定时任务的开发,要使用@Scheduled注解,首先需要在启动类添加@EnableScheduling,启用Spring的计划任务执行功能,这样可以在容器中的任何Spring管理的bean上检测@Scheduled注解,执行计划任务 

关于@Scheduled注解我写了一个简单的demo

只需要把修改注解里面的时间算法就行了

定时任务
    @Autowired
    private RedisLock redisLock;
    @Scheduled(cron = "0 0 */3 * * ?")//定时任务注解
    public void reportCurrentTime() {
        //生成id
        String id = UUID.randomUUID().toString();
        try {
            //加redis锁,每个定时器有自己的常量参数
            boolean flag = redisLock.lock(id, RedisLock.OUTBREAK_LOCK_KEY);
          
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            //解锁
            redisLock.unlock(id, RedisLock.OUTBREAK_LOCK_KEY);
           
        }
    }

 以下是我总结的几个比较常用的时间算法

每隔5秒执行一次:            @Scheduled(cron = "*/5 * * * * ?")
每隔1分钟执行一次:           @Scheduled(cron = "0 */1 * * * ?")
每天23点执行一次:           @Scheduled(cron = "0 0 23 * * ?")
每天凌晨1点执行一次:          @Scheduled(cron = "0 0 1 * * ?")
每月1号凌晨1点执行一次:      @Scheduled(cron = "0 0 1 1 * ?")
每月最后一天23点执行一次:     @Scheduled(cron = "0 0 23 L * ?")
每周星期天凌晨1点实行一次:     @Scheduled(cron = "0 0 1 ? * L")
在26分、29分、33分执行一次:     @Scheduled(cron = " 0 26,29,33 * * * ?")
每天的0点、13点、18点、21点都执行一次:  @Scheduled(cron = " 0 0 0,13,18,21 * * ?")

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值