Cron表达:究竟有什么区别?和*在一个cron表达式?

时间:2015-12-11 07:34:56

标签: cron quartz-scheduler crontab cronexpression

在我看来,两者都意味着“任何可用的值”。他们之间的区别到底是什么?

3 个答案:

答案 0 :(得分:5)

*表示该字段中的每个可能值。 ?表示您并不关心价值。当你有两个可能相互矛盾的字段时使用它。常见示例是月份日和星期几字段。例如,考虑在每个月的第一天上午10点运行的cron规范:

0 0 10 1 * ? *

现在让我们分解一下:

  • 秒:0 - 我们希望它在10:00运行: 00
  • 分钟:0 - 我们希望它在10上运行: 00 :00
  • 小时:10 - 我们希望它在 10 :00:00
  • 上运行
  • 每月的某一天:1 - 我们希望它能够在每个月的第1天运行
  • 月:* - 我们希望它每月运行(例如,1月1日,2月1日等)
  • 星期几:? - 我们不关心星期几。 cron应该在每个月的第1天运行,无论是星期天,星期一等等。
  • 年:* - 我们希望它每年都运行

答案 1 :(得分:1)

来自Quartz Scheduler

  

*("所有值") - 用于选择字段中的所有值。例如," *"在分钟字段中表示"每分钟"。

     

? ("没有具体的值") - 当您需要指定某些内容时非常有用   允许角色的两个字段之一,但不是   其他。例如,如果我希望我的触发器在某一天触发   这个月(比如说,10日),但不关心一周的哪一天   碰巧是,我会把" 10"在日期字段中,"?"在   星期几字段。请参阅以下示例以获得说明。

答案 2 :(得分:0)

* 字符用于指定所有值。例如,分钟字段中的“ * ”表示“每分钟”。

? 字符可用于日期和星期几字段。它用于指定“无特定值”。当您需要在两个字段之一中指定某些内容而不是另一个字段时,这非常有用。请参阅以下示例以获得说明。

你可以在这里看一下: http://docs.netkernel.org/book/view/book:mod:cron/doc:mod:cron:cronexpression

此外,如果您需要创建一个Cron表达式,可以使用:http://www.cronmaker.com/

相关问题