【问题标题】:what does below cron expression ,means?cron 表达式下面是什么意思?
【发布时间】:2012-02-10 14:36:35
【问题描述】:

我有以下 cron 表达式。

"0 0 0 ? * SUN"

这究竟是什么时候执行的?周六周日午夜?

谢谢!

【问题讨论】:

  • +1:看起来很简单,但似乎使用了未定义的行为。
  • 它不是一个 cron 表达式,而是一个类似但不同的石英表达式(并且多了一个字段)
  • @wuppi quartz 是一个用于调度的 Java 库(基于 cron)
  • 哦,好的。谢谢。今天学到了一些东西:)

标签: quartz-scheduler


【解决方案1】:

tutorial

*   *    *    *    *    *   (year optional)
┬   ┬    ┬    ┬    ┬    ┬
│   │    │    │    │    │
│   │    │    │    │    │
│   │    │    │    │    └───── day of week (0 - 7) (0 or 7 is Sun, or use names)
│   │    │    │    └────────── month (1 - 12)
│   │    │    └─────────────── day of month (1 - 31)
│   │    └──────────────────── hour (0 - 23)
│   └───────────────────────── min (0 - 59)
└─────────────────────────      seconds

通配符(* 字符)可用于表示该字段的“所有”可能值。因此,前面示例的“月”字段中的 * 字符仅表示“每个月”。因此,Day-Of-Week 字段中的“*”显然表示“一周中的每一天”。

“?”日期和星期几字段允许使用字符。它用于指定“无特定值”。当您需要在两个字段之一中指定某些内容而不是另一个字段时,这很有用。请参阅下面的示例(和 CronTrigger JavaDoc)进行说明。

所以这意味着每个星期日的午夜

【讨论】:

  • 他基于Quartz Scheduler。它有一个带有秒数的 cron 表达式,不像 bas cron 表达式
【解决方案2】:

这实际上不是一个 cron 表达式。这是一个石英时间表表达式。

http://quartz-scheduler.org/documentation/quartz-2.1.x/tutorials/crontrigger

0 0 0 表示午夜(秒、分、小时)

? 表示它依赖于其他字段。

* 表示所有月份。

SUN 表示星期日。

【讨论】:

  • 他说的是 Quartz Cron Trigger,这与 Cron 表达式略有不同:请参阅 Quartz doc 中的这个示例:0 15 10? * MON-FRI 每周一、二、三、四、五上午 10:15 开火
【解决方案3】:

触发器将在每个星期日(早上)上午 00:00:00 触发。 0 是一天的开始,而不是结束。所以它会在周六 23:59:59 的下一秒触发

【讨论】:

    猜你喜欢
    • 2013-08-02
    • 1970-01-01
    • 2016-11-03
    • 1970-01-01
    • 1970-01-01
    • 2013-10-02
    • 2012-06-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多