定时任务执行时间设置详解

前提

一般在处理业务过程中,都需要在特定的时间点执行特定的任务,尤其是业务复杂且执行时间很长,业务之间关联性强的时候,定时任务执行时间的设置显得更为重要。

实践举例

比如有相关性的两个任务A和B ,A需要在凌晨5点执行,且预估执行时间是5小时,B任务需要在A任务执行数据结果的基础上执行,那么根据既往执行情况,将B任务的执行时间设置在上午11点开始执行,执行2小时完毕。

这里需要注意的要精细掌握任务的执行时间,如果为任务预留的执行时间过短很可能会导致后续任务失败,做无用功。比如随着业务量的增大,A任务将会有原来执行3小时就执行完毕会延长为执行5小时才能执行完毕,这时候就需要运营做密切监控,适当调整任务间执行间隙。

定时任务执行时间设置详解

一般都会有前端页面可视化配置定时任务执行频率,具体设置页面举例如下:
在这里插入图片描述
具体调度规则的规范现细列如下:

定时器包含的子表达式和对应子表达式允许的值

{秒数} {分钟} {小时} {日期} {月份} {星期} {年份(可为空)}
(059)(059)(023)(031)(011)(17)(1970-2099)
其中星期中的1到7代表从礼拜一到礼拜日,1=SUN,所以也可以写成大写缩写的形式:SUN,MON,TUE,WED,THU,FRI,SAT。
上述中每个大括号可以认为是一个子表达式。
一个定时器的配置至少有前6个也可能有7个子表达式组成,因为年份是可选的可为空。

子表达式中特殊字符含义的解释和相应示例

*:代表所有可能的值。
?:仅用于天(月)和天(星期)两个表达式,表示不指定值。当其中之一被指定值以后,需要将另一个子表达式设置为?。
L:字符仅被用于天(月)和天(星期)两个子表达式,天(月)表示一个月最后一天,天(星期)表示一个星期最后一天即SAT。
-:表示一个连续区间
/:指定数值的增量,间隔。
,:指定子表达式中具体的值
15 * * * * ? 每15秒钟执行一次
0 0 2 * * ? 每天凌晨2点执行一次
0 49 16 * * ? 每天下午16:49执行一次
0 1,31 * * * ? * 每小时的每1分钟和每31分钟的时候执行一次
0 0 10,16,22 * * ? 每天10点、16点、22点执行一次
0 30 1-6 * * ? 上午1点到6点之间每到30分钟的时候执行一次
0/3 * * * * ? 从第0秒开始,每3秒钟执行一次
0 0/2 * * * ? 每小时的0分0秒开始,每2分钟执行一次
0 0/20 7-10 * * ? 每天7点到10点之间每隔20分钟执行一次
15 12 1 2 1 ? 2009 2009年1月2号1点12分15秒执行
15 12 1 ? 10 SUN 2009 2009年10月每周日1点12分15秒执行

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值