Cron表达式

近日,在看Spring中的Quartz框架时,发现了在编写触发器时有

CronScheduleBuilderCronTrigger 这两个类,编写时要用到Cron表达式,了解了一下还蛮好用的,在这里概述一下:

首先cron表达式由7个部分组成,中间由空格分隔,这7部分从左往右依次是:

(秒   分   时   月份中的第几天   月   星期中的第几天  年份)

注意:星期中的第几天 的 1对应的是星期天,这是外国人的习惯。

特殊字符:

,  :表示或关系,比如我要让它在每个分钟的510秒时执行(可以有多个),那么就可以这样写:(5,10 * * * * ? *)

-  :表示范围,比如我要让它在每个分钟的510秒时执行,那么就可以这样写:(5-10 * * * * ? *)

*  :表示当前字段的每一个合法值(类似sql语句)

/  :表示阶段增加,比如A/B,意义就是A时刻开始触发,每隔B时间都触发一次

? :表示不指定值,由程序自动分配(只能用在月份中的第几天星期中的第几天这两个地方,写了一个,另一个就写为?来避免冲突<比如你写了个2月20日,又写了个星期5,但是2月20日是星期6,这不就冲突了>,程序会自动计算你没写的那个值)

L :表示最后,last的意思,也是只能用在月份中的第几天星期中的第几天这两个地方,比如:(0 0 6 ? * L)表示每个月的星期六6点<星期六是每周的last天> ; 并且当L用于“星期几”时,L前可以加一个数字,变成nL,表示月份中最后一个星期n。比如(0 0 0 ? * 1L)表示当月的最后一个星期天。

# :表示当月的第几个星期几,只能用于星期中的第几天这个元素,比如“5#3”表示当月第3星期四

 

比如在quartz框架中这样写:

 CronScheduleBuilder cronScheduleBuilder =
 CronScheduleBuilder.cronSchedule("5,10,15,20,50 * * * * ? *");

CronTrigger trigger = triggerBuilder.withSchedule(cronScheduleBuilder).build();

我在开启线程后,每经过每分钟的5,10,15,20,50秒钟,程序都会执行一次我传入触发器的任务(具体怎么实现的代码太多,这里就是体现一下Cron表达式的用处)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值