🕒Cron表达式是一种强大的时间定义字符串格式,用于配置定时任务的执行时机。
🔢它由七个时间字段组成,每个字段代表特定的时间含义。
位置 | 时间字段 | 含义 |
---|---|---|
1 | 秒 | 0-59 中的任意秒数 |
2 | 分 | 0-59 中的任意分钟 |
3 | 时 | 0-23 中的任意小时 |
4 | 日 | 月份中的某天,1-31 |
5 | 月 | 1-12 中的任意月份 |
6 | 周 | 0-6,有些系统为1(周日)-7(周六) |
7 | 年(可选) | 1970-2099,省略或指定年份 |
通常,"年"字段是可选的,大多数场景下使用的是前六个字段。
通配符 | 描述 |
---|---|
, | 表示在两个或多个时间点都执行。例如:"分" 域中定义为 8,12,35,则分别在第8分、第12分、第35分执行。 |
- | 指定某个域的连续范围。例如:"时" 域中定义 1-6,则表示从1到6点每小时触发一次。 |
* | 表示所有可能的值,即"每"。例如:"日" 域中设置 *,表示每天都触发。 |
? | 表示不指定值。用于不需要关心该字段值的场景。例如:每月的8号触发,但不关心周几,可设置为 "0 0 0 8 * ?" |
/ | 周期性触发,"起始值/间隔"格式。例如:"秒" 域中定义 5/10 表示从第5秒开始每10秒执行一次。 |
L | 代表"最后",仅在"日"和"周"域中使用。例如:"日"域中设置L表示当月最后一天,"周"域中设置"7L"表示本月最后一个周六。 |
W | 表示指定日期最近的工作日(周一至周五)。例如:"日"域中设置"15W"表示离每月15号最近的工作日触发。 |
# | 每月的第几个周几。仅作用于"周"域。例如:"2#3"表示每月的第三个周二。 |
描述 | Cron 表达式 |
---|---|
每5秒执行一次任务 | 0/5 * * * * ? |
每15秒执行一次任务 | 0/15 * * * * ? |
每2分钟执行一次任务 | 0 0/2 * * * ? |
每30分钟执行一次任务 | 0 0/30 * * * ? |
每小时执行一次任务 | 0 0 0/1 * * ? |
每6小时执行一次任务 | 0 0 0/6 * * ? |
每天凌晨1点执行 | 0 0 1 * * ? |
每天中午12点执行任务 | 0 0 12 * * ? |
工作日(周一至周五)的18:00执行 | 0 0 18 * * 1-5 |
每周三中午12点执行 | 0 0 12 ? * 3 |
每月的第一天中午12点执行 | 0 0 12 1 * ? |
每月的第一天凌晨2点执行 | 0 0 2 1 * ? |
每月的第一天和第十五天中午12:30执行 | 0 30 12 1,15 * ? |
每周日凌晨2点执行 | 0 0 2 * * 0 |
每年1月1日凌晨1点执行 | 0 0 1 1 1 ? |
每个季度的第一天凌晨1点执行 | 0 0 1 1 1,4,7,10 ? |
工作日每天上午9点至下午5点每小时执行一次 | 0 0 9-17 * * MON-FRI |
每天上午8点至10点之间,每小时执行一次任务 | 0 0 8-10 * * ? |
每天上午8点至10点之间每半小时执行一次 | 0 0/30 8-10 * * ? |
每月最后一天23点执行一次 | 0 0 23 L * ? |
每周周六凌晨3点执行一次 | 0 0 3 ? * 6 |
在24分、30分执行一次 | 0 24,30 * * * ? |
Cron在线生成工具是每一位程序员和开发者的福音。无论你正在编写一些需要精确计时的代码,或者在寻找一种自动执行周期性任务的方法,这款工具都可以帮到你。Cron 是Unix/Linux系统下的任务调度命令,但其语法对于初学者来说可能比较复杂。而Cron在线生成工具正解决了这个问题,它通过显而易见的界面生成Cron表达式,使得创建和管理定时任务变得简单过去。
要使用Cron在线生成工具,只需访问该网页版本,然后根据你的需求设定好规则,该工具会为你生成相应的Cron表达式。不论你是一位资深开发者还是对编程知识相对初音的任务管理者,这款工具都可以让你事半功倍。