[会写代码的健身爱好者成长史]之spring注解定时任务

 在类上添加注解:@EnableScheduling

在方法上添加注解: @Scheduled
@Scheduled注解有2个属性

1.fixedDelay

时间间隔,单位毫米.每隔3秒触发一次
@Scheduled(fixedDelay = 3000)

2.cron表达式 

 "*" 如果在秒表示不做限制,每秒都会触发一次  如果在小时代表每个小时都执行,如果在日是每天都会执行,以此类推

"/" 代表起始时间开始触发,如果在分钟,5/20则代表5分钟开始,每隔20分钟触发一些,25分钟触发,45分钟触发,以此类推。如果到了第二个循环则还是从5分开始 

 "?" 主要是为了日和星期避免互斥,3月的每个周三的1号,这样就比较怪,所有要么是3月的1号,要么说3月每个周三,所以如果“日”有了具体的值,那么“星期”就要是设置成“?”,反之也是

"L"代表最后,如果出现在“日”上,则代表这个月的最后一天,如果出现在“星期”上,则代表最后一个星期的周几(5L代表最后一个星期的周四,外国周天是一个星期的第一天) "W"代表只能在工作日触发(周一到周五),如果设置的那天是周6或者周天,则根据距离最近的工作日触发 

 "LW"代表这个月的最后一个工作日

 "#"代表第几个星期的星期几,如果是4#2 代表第二个星期的星期3(外国周天是一个星期的第一天)

    //fixedDelay 时间间隔,单位毫米.每隔3秒触发一次
    //@Scheduled(fixedDelay = 3000)

    //cron表达式中, “5,20”代表的是每个小时的5分和20分钟触发一次,那如果是“5-20”就代表,5分钟到20分
//    @Scheduled(cron = "10 5,20 * * * ?")
    //每天的9点-22点,1分10秒,2分10秒,4分10秒的时候触发一次
    @Scheduled(cron = "10 1,2,4 9-22 * * ?")
    public void a(){
        System.out.println("吃药了!!!"+DateFormat.getDateTimeInstance().format(new Date()));
    }

    //每个月1号的0点0分0秒执行
    @Scheduled(cron = "0 0 0 1 * ?")
    public void b(){
        System.out.println("喝水!!!"+DateFormat.getDateTimeInstance().format(new Date()));
    }

    //3月份的每个星期三的凌晨1点10分0秒和20分0秒触发一次
    @Scheduled(cron = "0 10,20 1 ? 3 WED")
    public void c(){
        System.out.println("喝水!!!"+DateFormat.getDateTimeInstance().format(new Date()));
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值