来源维基百科:
使用问号(?)代替“*”,以便将日期或星期几留空。
上述陈述对我来说没有多大意义。
因此,如果我将某个cron写为 0 0 0 ? * *
,那么它是指每月的第一个还是意味着它会每天执行?
有点混乱,因为Java crons以秒开始,而其他crons以分钟开头。
答案 0 :(得分:86)
根据Quartz CronTrigger tutorial(上面引用的www.cronmaker.com使用的Quartz),?
通配符仅用于月中某一天和星期几字段:
? (“无特定值”) - 当您需要在允许该字符的两个字段之一中指定某些内容时非常有用,而在另一个字段中则不需要。例如,如果我希望我的触发器在该月的某个特定日期(例如,第10天)触发,但不关心恰好在一周的哪一天,我会在当天放置“10” -month字段,和“?”在星期几的领域。
我认为*
在这里不适合,因为*
表示在一周中的每一天都执行,这与规则相反,它应该只在该月的10日运行。
答案 1 :(得分:-3)
我知道这是一个古老的问题,但对于子孙后代,这里有解释:http://www.nncron.ru/help/EN/working/cron-format.htm#STARTTIME
在经典和扩展模式下,nnCron用户都可以使用 “非标准”字符“?”在cron格式的前四个字段中。 它代表nnCron启动的时间,i。即处理字段时 启动时间将替换问号:分钟为 分钟字段,小时字段的小时,月份的日期 月份字段的字段和月份。
例如,如果您编写以下内容:
时间:? ? * * * *任务将在nnCron启动时执行,然后执行 将每天同时执行(除非用户没有 当然重启nnCron):问号将被“替换” nnCron启动时间。例如,如果nnCron在8:25启动, 问号将以这种方式取代:
时间:25 8 * * * *
答案 2 :(得分:-13)
我不是Cron专家
但根据www.cronmaker.com,它每天执行。