Cron表达式

Cron表达式

接触cron表达式是在Sping boot定时任务中,cron表达式代表了一个时间,可在定时任务中代表任务的执行执行周期。

组成

cron表达式一般由5个或者6个空格组成,组成6或者7个域,每个与中由一些数字/符号按照一定规则组成。这组字符串中表达了时间的信息。

每个域分别代表一个时间单位,如:

A B C D E F   ->   秒 分 时 日 月 星期
A B C D E F G   ->   秒 分 时 日 月 星期 年

A表示秒,B表示分,C表示小时,D表示日,E表示月,F表示星期,G表示年
在日常的使用中,年为单位执行任务不常用,因此G也可以省略

常用符号

符号含义
x/yx代表开始值,y是步长,即从x开始,每y执行一次
A-B从时间段A到B
星期星期英文前三个字母大写,如星期一 MON
LLast,表示最后
?不说明是星期几,用问号代替
a,b逗号表示列表值
*

程序中调用方式

@Configuration      
@EnableScheduling   
public class SaticScheduleTask {
    @Scheduled(cron = "0/5 * * * * ?")
    // 或直接指定时间间隔,例如:5秒
    // @Scheduled(fixedRate=5000)
    private void configureTasks() {
        . . .
    }
}
  • @Configuration表示这是一个配置类,兼备Component的效果。
  • @EnableScheduling表示开启定时任务。
  • @Scheduled(cron = "0/5 * * * * ?")表示添加定时任务——每隔五秒触发事件。

实例

// 1949年10月1日下午3点,开国大典时间
0 0 15 1 10 * 1949

// 每2小时第30分0秒执行
0 30 */2 * * ?

// 每个月最后一天的1到5点,然后这几个点内的每个0分1秒,0分3秒,0分5秒各执行一次。
1,3,5 0 1-5 L * ?

Linux中的crontab命令

可参考 菜鸟教程:Linux crontab 命令

在Linux中的crontab命令与上述有所不同,更加精简,由五部分+命令(command)组成

A B C D E command	

其中 A 是表示分钟,B 表示小时,C 表示一个月份中的第几日,D 表示月份,E 表示一个星期中的第几天

// 每一分钟执行一次 /bin/ls
* * * * * /bin/ls      

// 在 12 月内, 每天的早上 6 点到 12 点,每隔 3 个小时 0 分钟执行一次 /usr/bin/backup
0 6-12/3 * 12 * /usr/bin/backup    

// 周一到周五每天下午 5:00 寄一封信给 alex@domain.name
0 17 * * 1-5 mail -s "hi" alex@domain.name < /tmp/maildata

// 每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha":
20 0-23/2 * * * echo "haha"

参考资料

  1. 一看就懂:cron 表达式
  2. 【周一通勤电台】cron表达式,看这篇就够了
  3. 在线Cron表达式生成器
  4. 菜鸟教程:Linux crontab 命令
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值