Cron 表达式的一些困惑

查看 46|回复 1
作者:Koril   
问题一
Cron 表达式中的 day of month 和 day of week 到底能不能同时存在?
有说可以同时存在的:
[ol]

  • 工具网站: https://crontab.guru
    我在这个网站输入23 22 3 11 3,它显示解析结果是:“At 22:23 on day-of-month 3 and on Wednesday in November.”

  • Ubuntu 的 cron 手册页: https://manpages.ubuntu.com/manpages/impish/en/man5/crontab.5.html
    里面提到一句话:For example, 30 4 1,15 * 5 would cause a command to be run at 4:30 am on the 1st and 15th of each month, plus every Friday.
    [/ol]
    也有说,不可以同时存在的:
    [ol]

  • 工具网站: https://cron.qqe2.com/ 我在这个网站输入 0 23 22 3 11 3,它显示解析结果是:不支持同时指定星期几和几月参数。

  • 一些博客,比如这篇: https://blog.csdn.net/qq_42319677/article/details/123183028 里面提到:当日期或星期域其中之一被指定了值以后,为了避免冲突,需要将另一个域的值设为?。
    [/ol]
    问题二
    Cron 表达式的每个参数的取值范围
    秒数,分钟,小时都没什么争议,主要是 month 和 day of week 这两个参数。
    month
    有说 0-11 的,也有说 1-12 的。
    day of week
    有说 0-6 ( 0 表示 周日)的,也有说 1-7 的,还有说 0-7 ( 0 和 7 都表示周日)的。
    针对这两个参数不一致,写缩写(比如:月份的 jan,feb,mar,apr ,星期的 sun,mon,tue,wed,thu,fri,sat )是不是一个最好的方案呢?
    Cron 怎么有点像正则一样,不同的语言和系统还有不同的标准?请教下各位大佬,感谢!

    cron, month, Week, DAY

  • zhlxsh   
    问题二:我记得星期里面,0 和 7 都是周日,月份可能也一样
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部