简单理解crontab表达式

在日常工作中,我在使用定时任务的场景,一般使用Windows计划任务,或者hangfire这类的定时任务框架,因为hangfire已经实现了常用的cron表达式封装,所以一直也没去了解太多。

趁着最近有空,补习一下cron相关的知识。

认识cron表达式

cron表达式是一个字符串,用空格分隔,一般分成6或者7个字段,如:分 小时 日 月 周 年(可选), 在crontab中,没有秒这项

cron表达式的用法

cron 字段可以使用特殊符号来表达出不同的意思,比如 , - / * L W 等符号

  • * 表示所在项的每个点都触发,比如 *在第一位,说明每一分钟都要触发
  • ,表示选中的时间点,比如5,10 可以在5和10的时间点触发
  • -表示时间段,比如5-10 表示在5到10这个时间段,每一个点都触发
  • /表示除以这个数字为0,就可以触发,比如 */2表示 每触到除以2等于0的时候,都可以触发
  • L是单词last的缩写,表示最后一天,比如天的位上,用L,说明是最后一天
  • W表示工作日,是单词weekday的缩写,表示周一到周五

比如需要每小时第5分钟执行一次 ,可以写 5 * * * *

image

每五分钟执行一次 */5 * * * *

image

每 1小时触发一次 0 */1 * * *
image

每周一零点触发一次 0 0 * * 6

image

每个月1号零点触发一次 0 0 1 * *

image

每月最后一天触发 0 0 L * *

image

使用建议

一般来说,使用cron表达式的时候,最好找个工具验证一下。毕竟人不是机器,容易出错

推荐 tool.lu/crontab/

posted on 2022-10-26 00:04  快乐海盗  阅读(2425)  评论(0编辑  收藏  举报