Cron表达式

本文最后更新于:5 个月前

Cron表达式是一个字符串,以五个或者六个空格隔开,分为6或7个域,每一个域代表一个含义

秒 (0~59)
分 (0~59)
小时 (0~23)
天 (0-31/28/30) 月的第几天
月 (0-11)
星期 (1-7) 星期几
年份 (1970~2099)

每个元素可以是:

  • 一个具体值

  • 一个连续区间(9-12)

  • 一个间隔时间

    0/5: 表示从0开始每间隔5,写到哪个元素就表示间隔的是哪个元素,如果写到了秒,那么表示从0开始,每隔5秒执行一次。

  • 一个列表

    (1,3,5): 表示第1,3,5时间执行

  • 通配符

    (,- * / L W #)

    月份的日期和星期的日期这两个元素是互斥的,必须对其中一个设置通配符

通配符的详解

  • * 所有可能的值
  • / 指定数值的增量
  • 表示不指定值
  • L 表示最后,只能用在或者那一栏
  • W 离指定日期最近的那个工作日(周一至周五), 只能在那一栏使用。
  • # 表示每月的第几个周几

注意

  1. 基本都允许的字符: , - * ?

  2. 特别的:

    表示的域还可以用 L W

    星期也可以用 L

例如:

  1. 0 55 23 L * ? 表示每月的最后一天的23:55分

  2. 0 0/30 9-17 * * ? ? ? 朝九晚五工作时间内每半小时

  3. 0 0 12 ? * WED 表示每个星期三中午12点

  4. 0 0 12 * * ? 每天12点触发

  5. 0 15 10 ? * * 每天10点15分触发

  6. 0 * 10 * * ? 每天10:00-10:59每分钟触发一次

  7. 0 0/5 10 * * ? 每天 10:00-10:59每隔5分钟触发

  8. 0 0/5 10,15 * * ? 每天10:00-10:59,15:00-15:59(每隔5分触发)

  9. 0 0-5 15 * * ? 每天15:00-15:05每分触发

  10. 0 10,55 14 ? 3 WED 3月份每周三14:10触发 ,14:55触发

  11. 0 15 10 ? * MON-FRI 从周一到周五每天10:15分触发

  12. 0 15 10 15 * ? 每月15号10:15分触发

  13. 0 15 10 L * ? 每月最后一天的10:15分触发

  14. 0 15 10 ? * 6L 每月最后一周的星期五的10:15分触发

  15. 0 15 10 ? * 6L 2017-2020 从2017年到2020年每月最后一个星期五的10:15分触发

  16. 0 15 10 ? * 6#3 每月的第三周的星期五10:15触发

  17. 0 0 12 1/5 * ? 每月的第一天开始每隔5天的12:00触发一次

  18. 0 11 11 11 11 ? 每年的11月11号 11点11分触发(光棍节)