【发布时间】:2016-03-17 01:24:30
【问题描述】:
在我看来,两者都意味着“任何可用值”。它们之间到底有什么区别?
【问题讨论】:
标签: cron quartz-scheduler crontab cronexpression
在我看来,两者都意味着“任何可用值”。它们之间到底有什么区别?
【问题讨论】:
标签: cron quartz-scheduler crontab cronexpression
* 表示字段中所有可能的值。 ? 表示您不关心价值。当您有两个可能相互矛盾的字段时使用它。常见的示例是月中日和周中日字段。例如,在每个月的第一天上午 10 点运行的 cron 规范:
0 0 10 1 * ? *
现在让我们分解一下:
0 - 我们希望它在 10:00 运行:00
0 - 我们希望它在 10:00:0010 - 我们希望它在 10:00:001 - 我们希望它在每个月的 1 号运行* - 我们希望它每月运行一次(例如,1 月 1 日、2 月 1 日等)? - 我们不关心星期几。 cron 应该在每个月的 1 号运行,无论是星期日、星期一等。* - 我们希望它每年都运行【讨论】:
1,在“day-of-week”中指定*,因为我们无法指定特定的两个字段的值(或“所有值”=*)。所以? 只是一种使用“星期几”字段而不与“星期几”冲突的方式,所以我们可以在它之后为“年份”指定一个值? (问是因为another question said it wasn't clear。)
* ("all values") - 用于选择字段中的所有值。例如,分钟字段中的“*”表示“每分钟”。
? ("no specific value") - 当你需要在 允许字符的两个字段之一,但不是 其他。例如,如果我希望触发器在特定日期触发 本月(例如,10 日),但不在乎一周中的哪一天 碰巧是,我会在日期字段中输入“10”,而“?”在 星期几字段。请参阅下面的示例进行说明。
【讨论】:
* 字符用于指定所有值。例如,分钟字段中的“*”表示“每分钟”。
? 字符允许用于日期和星期几字段。它用于指定“无特定值”。当您需要在两个字段之一中指定某些内容而不是另一个字段时,这很有用。请参阅下面的示例进行说明。
您可以在这里查看更多信息: http://docs.netkernel.org/book/view/book:mod:cron/doc:mod:cron:cronexpression
如果你需要创建一个 Cron 表达式,你可以使用这个:http://www.cronmaker.com/
【讨论】: