cron表达式详细讲解

时间:2024-01-23 22:57:38
  • *(通配符):匹配任意值,例如* * * * * ?表示每秒执行一次任务。“*”在分钟字段中表示每一分钟。
  • ,(列表):用于指定多个取值,例如0 0 6,12,18 * * ?表示每天6点、12点和18点执行任务。
  • -(范围):用于指定一个范围内的取值,例如0 0 9-17 * * MON-FRI表示周一至周五的9点到17点之间每小时执行一次任务。
  • /(步长):用于指定一个取值的步长,例如5/15 * * * * ?表示从第 5 秒开始,每 15 秒一次(5 20 35 50)执行一次,0/15也可写成*/15。0 */30 * * * ?表示每30分钟执行一次任务。
  • ?(无限定符)只有在日期和星期字段中可用,表示这个字段,可忽略 日期和星期不能同时指定值,必须有一个是? 或者同时为* 例如0 0 12 ? * MON-FRI表示周一至周五中午12点执行任务。
  • #(日历偏移量):只能用在星期字段,指定某个月份的第几个周几,X#Y表示每个月的第Y个星期X,例如0 0 0 ? * 3#1表示每个月的第一个星期三执行任务。
  • L(Last最后):表示某个指定时间内的最后一天,例如0 0 L * * ?表示每月的最后一天执行任务。在日期字段中,表示在当月最后一天。可以在星期字段中插入“?”,表示星期值无关紧要。在星期字段中,如果“L”单独存在,就等于“7”或“SAT”,但是,前面出现数据X时,表示“当月的最后一个星期X”,即,“1L”表示当月的最后一个星期日。
  • W(Weekday工作日):表示距离指定日期最近的工作日,例如0 0 0 15W * ?表示距离当月15日最近的工作日执行任务。如果15号是工作日,则执行任务;如果15号是周末,则任务会到最近的工作日执行。