Java Cron中问号的重要性

lea*_*ner 49 java cron crontab

来源维基百科:

使用问号(?)代替'*',以留下日期或星期几空白.

上面的陈述对我来说没有多大意义.

所以如果我写一些cron,0 0 0 ? * *那么它是指每个月的第一个还是意味着它会每天执行?

这有点令人困惑,因为Java crons以秒开始,而其他crons以分钟开头.

Dan*_*ing 97

根据Quartz CronTrigger教程(Quartz由www.cronmaker.com使用,如上所述),?通配符仅用于星期几和星期几字段:

?("无特定值") - 当您需要在允许该字符的两个字段之一中指定某些内容时非常有用,而在另一个字段中则不需要.例如,如果我希望我的触发器在该月的某个特定日期(例如,第10天)触发,但不关心恰好在一周的哪一天,我会在当天放置"10" -month字段,和"?" 在星期几的字段中.

我想*这里不合适,因为*意味着在一周中的每一天都执行,这违反了规则,它应该只在该月的10日运行.


小智 -3

我知道这是一个老问题,但对于后代,它在这里解释: http: //www.nncron.ru/help/EN/working/cron-format.htm#STARTTIME

无论是在经典模式还是扩展模式下,nnCron 用户都可以使用“非标准”字符“?” 在 cron 格式的前四个字段中。它代表nnCron启动时间,即当处理一个字段时,启动时间将代替问号:分钟字段为分钟,小时字段为小时,月份字段为月份中的日期,月份字段为月份。

例如,如果您编写以下内容:

时间: ??* * * * 任务将在 nnCron 启动时执行,然后每天同时执行(当然,除非用户不重新启动 nnCron):问号将被 nnCron 启动时间“替换”。例如,如果 nnCron 于 8:25 开始,问号将以这种方式替换:

时间: 25 8 * * * *

  • nnCron 与 Java Cron 无关,其含义是什么?与Java中的含义完全不同。 (7认同)