java crontab表达式,cron4j 表达式详解

本文详细介绍了Cron表达式的构成和规则,包括分、时、天、月、周的设定及其特殊符号的使用,如星号、逗号、减号、除号等。通过实例解析了如何配置Cron表达式以实现不同频率的任务调度,如每分钟、每小时、每天特定时间执行等。同时,特别提到了cron4j中关于除号使用的一个常见错误及其规避方法。
摘要由CSDN通过智能技术生成

请注意,cron 表达式最多只允许五部分,每部分用空格分隔开来,这五部分从左到右依次表示分、时、天、月、周,其具体规则如下:

分 :从 0 到 59

时 :从 0 到 23

天 :从 1 到 31,字母 L 可以表示月的最后一天

月 :从 1 到 12,可以别名:jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov" and "dec"

周 :从 0 到 6,0 表示周日,6 表示周六,可以使用别名: "sun", "mon", "tue", "wed", "thu", "fri" and "sat"

如上五部分的分、时、天、月、周又分别支持如下字符,其用法如下:

数字 n:表示一个具体的时间点,例如 5 * * * * 表示 5 分这个时间点时执行

逗号 , :表示指定多个数值,例如 3,5 * * * * 表示 3 和 5 分这两个时间点执行

减号 -:表示范围,例如 1-3 * * * * 表示 1 分、2 分再到 3 分这三个时间点执行

星号 *:表示每一个时间点,例如 * * * * * 表示每分钟执行

除号 /:表示指定一个值的增加幅度。例如 */5表示每隔5分钟执行一次(序列:0:00, 0:05, 0:10, 0:15 等等)。再例如3-18/5 * * * * 是指在从3到18分钟值这个范围之中每隔5分钟执行一次(序列:0:03, 0:08, 0:13, 0:18, 1:03, 1:08 等等)。

常见错误:cron4j在表达式中使用除号指定增加幅度时与linux稍有不同。例如在linux中表达式 10/3 * * * * 的含义是从第10分钟开始,每隔三分钟调度一次,而在cron4j中需要使用 10-59/3 * * * * 来表达。避免这个常见错误的技巧是:当需要使用除号指定增加幅度时,始终指定其范围。

基于上面的技巧,每隔2分钟调度一次的表达式为:0-59/2 * * * * 或者 */2 * * * * , 而不能是0/2 * * * *

下边举几个例子:

如果想每分钟执行一次,那么表达式就是这样

* * * * *

*/1 * * * *

每个小时执行一次

1 */1 * * *

每天23:59执行一次

59 23 * * *

每天凌晨10分执行一次

10 0 * * *

每月最后一天的23:59执行

29 23 L * *

每天的9点到晚6点,每个小时执行一次

1 9-18/1 * * *

每天的早晨9点和晚上6点各执行一次

1 9,18 * * *

每天的早晨9点到晚上6点以后,每半个小时执行一次

*/30 9-18 * * *

每天的晚上10点到0点,每5分钟执行一次

*/5 22-0 * * *

每天的10点、12点、14点、16点、18点、20点、22点和0点各执行一次

1 10-0/2 * * *

1 10,12,14,16,18,20,22,0 * * *

好了,如果还有不懂的,可以留言给我

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值