在crontab中,“每周日期”字段是从0 - 6
还是1 -7
开始的?
我看到有关此事的相互矛盾的信息。维基百科声明0-6
以及我见过的其他网站1-7
。
还有什么意思或使用0
或7
错误?即cron还会继续运行吗?
答案 0 :(得分:303)
0
和7
都代表星期日,你可以使用你想要的那个,所以写0-6或1-7有相同的结果。
此外,正如@Henrik建议的那样,可以用缩短的天数替换数字,例如MON
,THU
等:
0 - Sun Sunday
1 - Mon Monday
2 - Tue Tuesday
3 - Wed Wednesday
4 - Thu Thursday
5 - Fri Friday
6 - Sat Saturday
7 - Sun Sunday
图形:
┌────────── minute (0 - 59)
│ ┌──────── hour (0 - 23)
│ │ ┌────── day of month (1 - 31)
│ │ │ ┌──── month (1 - 12)
│ │ │ │ ┌── day of week (0 - 6 => Sunday - Saturday, or
│ │ │ │ │ 1 - 7 => Monday - Sunday)
↓ ↓ ↓ ↓ ↓
* * * * * command to be executed
最后,如果您想要指定日期,您可以使用逗号分隔日期,例如SUN,MON,THU
将仅在星期日,星期一星期四执行该命令。
您可以在Wikipedia's article about Cron中阅读更多详情。
答案 1 :(得分:92)
:-) Sunday | 0 -> Sun
|
Monday | 1 -> Mon
Tuesday | 2 -> Tue
Wednesday | 3 -> Wed
Thursday | 4 -> Thu
Friday | 5 -> Fri
Saturday | 6 -> Sat
|
:-) Sunday | 7 -> Sun
如上所述,如前所述,数字0
和7
都分配给星期日。列出的本周还有英文缩写日期,也可以在crontab中使用。
使用数字或缩写的示例
15 09 * * 5,6,0 command
15 09 * * 5,6,7 command
15 09 * * 5-7 command
15 09 * * Fri,Sat,Sun command
这四个例子完全相同,每周五,周六和周日9点15分执行命令。
详情
星期日有两个数字0
和7
对于编写以0
开头或以7
结尾的工作日范围非常有用。因此,您可以编写从星期日开始或以其结尾的范围,例如0-2
或5-7
(范围必须以较低的数字开头,并且必须以较高的数字结尾)。缩写不能用于定义工作日范围。
答案 2 :(得分:7)
你也可以在星期一使用Mon
这样的日期名称,在星期二使用Tue
等等。它更加人性化。
答案 3 :(得分:0)
使用春季:
此作业在每个星期一的上午10-00开始 :
@Scheduled(cron = "0 0 10 * * MON")
此作业在每个月的1日上午10-00开始
@Scheduled(cron = "0 0 10 1 1/1 ?")