Cron表达式记录

最近在使用QuantumultX这个软件,其中有用到Cron,有些忘了,于是参考了一些资料,又复习了一遍,特此作个记录,以便随时翻阅。

一.Cron表达式
  • 计划任务,在约定时间完成执行已经计划好的工作。实际上是由几个子表达式组成,他们之间用空格分隔,
  • Cron表达式有两种语法:
    (1)秒 分 时 天 月 星期 年
    (2)秒 分 时 天 月 星期
二、各字段的含义
  • :允许设置的值为 0-59,可以出现 , - * / 这4个特殊字符
  • :允许设置的值为 0-59,可以出现 , - * / 这4个特殊字符
  • :允许设置的值为 0-23,可以出现 , - * / 这4个特殊字符
  • :允许设置的值为 1~31,可以出现 ,- * ? / L W C 这8个特殊字符
  • :允许设置的值为 (1-12)或者(JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV,DEC), 可以出现 , - * / 这4个特殊字符
  • 星期:允许设置的值为 (1~7)或者(SUN, MON, TUE, WED, THU, FRI, SAT),这里1是对应SUN的,不要搞 错,可以出现 , - * ? / L C # 这 8个特殊字符
  • :允许设置的值为 1970~2099,可以出现 , - * / 这4个特殊字符
三、特殊字符的含义
  1. " * ": 代表所有可以匹配的值

  2. " - ": 代表一个范围,比如在秒中“0-3”,代表0-3秒

  3. " , ": 在同一个表达式中使用,代表依次被执行的时间,比如在分钟里“5,10”,代表在第5分钟和10分钟分别执行一次

  4. “ / ": 表示一个步进,每过多长时间执行一次,用在同一个表达式里,比如“5/2”,代表从第5分钟开始,每过2分钟执行一次

  5. “ ? “: 只能用在日和星期中。它也匹配域的任意值,但实际上表示不关心这个字段的值。因为日和星期会相互影响。例如想在每月的20日的0时0分0秒触发,不管20日到底是星期几,则只能使用如下写 法: “0 0 0 20 * ?”, 其中最后一位只能用“?”,而不能使用”*" , 如果使用了,那么表示不管星期几的0点0分0秒这个时间,都会触发一次

  6. " L ": 代表最后一个可用的时间,"Last"的缩写,只能用在月份,星期表达式中。

    • 如果“L”前无内容,两个表达式中含义分别是:
      月:“L”在月中表示一个月的最后一天,1月31号,4月30号,等等
      星期:“L”在星期中表示一个星期的最后一天,也就是“7”或者“SAT”
    • 如果“L" 前有内容,那么就有另一个含义了,比如在星期中"5L",表示最后一个星期的星期4,在月中"5L”,表示 这个月的倒数第5天。
  7. “W": 代表”Weekday“(只有星期一星期五为工作日),只能用在月中,表示只在指定日期的最近有效工作日 触发,比如"12W",是个星期六,那么会在星期五,也就是11日执行。如果“12W"是个星期日,那么会在星 期一,13日执行。

  8. “LW”: 连用表示在某个月最后一个工作日,即最后一个星期五。

  9. “#”: 只能用在星期,表示某月的第几个星期几,比如“5#3",表示某月的第3个星期4

四、举例练习,巩固成果
1."30 *  *  ?" :由于后面全是任意匹配值,所以为每分钟的第30秒都执行
2."30 10 1 20 * ?":表示每月20日的1时10分30秒执行
3."30 10 1 ? 10 SUN 2020":表示2020年10月的每个星期日的1时10分30秒执行
4."15,30,45 *  *  ?":表示每分钟的第15秒,30秒,45秒都执行一次
5."15-45 *  *  ?":表示从第15秒开始到45秒,每秒都执行一次
6."0 0/3 *   ?":表示 每小时的第0分0秒开始,每三分钟触发一次
7."0 15 10 ? * 5L":表示每个月最后一个星期四的10点15分0秒触发任务
8."0 15 10 ? * 6#3":表示每月的第三个星期五上午10:15触发
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值