一个cron表达式由7位组成,每1位之间用空格隔开,7位分别代表:
秒 | 分 | 时 | 日(期) | 月 | 周(几) | 年(此位也可省略) |
---|
每一位可以是数字,也可以是如下格式(入门):
符号 | 含义 | 说明 |
---|---|---|
* | 每 | 秒位为 * 表示每秒触发,分位为 * 表示每分钟触发… |
? | 不指定 | 仅用于日、周两位,其一指定值后,为避免冲突,另一位设为? 表示不指定,不关注… |
- | 至 | 时位为1-5表示1:00-5:00触发 |
/ | 从,每 | 分位为5/10表示从第5分钟起,每10分钟触发一次,即5分,15分,25分等等 |
, | 表示枚举 | 分位为1,5 表示1分钟和5分钟时触发 |
举例:
题目 | 思考 | cron |
---|---|---|
全年每天10:30上班 | 分位为30 时位为10 | 0 30 10 * * * * |
每个周五9-17点每半小时发邮件给客户 | 周位为6 时位为9-17 分为0/30 | 0 0/30 9-17 ?* 6 * |
每季度末最后一天的22-24点每分钟第12与48秒触发 | 月为3/3 日为L 则周为?秒为12,48 | 12,48 * 22-24 L 3/3 ?* |
每一位也可以是如下格式(进阶)
题目 | 思考 | cron |
---|---|---|
L | 最后 | last的含义,仅用于日和周位,在第4位表示某月最后1天触发,在第6位表示某星期最后一天触发… |
数字+L | 倒数 | 第4位4L表示某月倒数第4天… |
W | 最近的工作日 | 日位为5w 表示离5号最近的工作日,5号若是周六则4号触发,5号若是周日则6号触发 |
LW | 指定月份最后一个工作日,不跨月 | 日位为LW表示当月最后一个工作日 |
# | 第几个星期几,仅周位可用 | 周位为3#2即第2个星期三 |
举例:
题目 | 思考 | cron |
---|---|---|
2019年后每年倒数第四个月第三个星期六上午10-11点之间第7,14,28,56分钟每5秒执行任务 | 年为2019/1 月为4L 星期为7#3 时为10-11 秒为0/5 | 0/5 7,14,28,56 10-11 ?4L 7#3 2019/1 |