0

使用 cron4j,可以设置在未来某个时间运行的作业

    Scheduler s = new Scheduler();
    s.schedule("5 10 * * *", job);
    s.start();

使用 cron4j,作业可以安排在“下周六”开始,还是在“2012 年 12 月 21 日”开始?

4

3 回答 3

2
*     *     *   *    *        command to be executed
-     -     -   -    -
|     |     |   |    |
|     |     |   |    +----- day of week (0 - 6) (Sunday=0)
|     |     |   +------- month (1 - 12)
|     |     +--------- day of        month (1 - 31)
|     +----------- hour (0 - 23)
+------------- min (0 - 59)

这是命令结构的基本分解。开始一些 21 看起来像的东西

0 0 21 12 *

但这只会在每年 12 个月的 21 日运行。

于 2012-07-16T15:30:22.707 回答
1

我不确定您是否可以定义年份,但由于字段是,minute hour day month day_of_week (year)您至少应该能够使用以下表达式让作业在 2012 年 12 月 21 日运行0 0 21 12 ? 2012

编辑:cron4j 似乎不支持可选的年份表达式,因此您似乎可以定义0 0 21 12 *并让作业在每年 12 月 21 日运行。

于 2012-07-16T15:25:16.577 回答
1

是的。例如:

0 0 21 12 *

这表示在 12 月 21 日凌晨 12:00 运行。

Chron 语法并不有限地支持年份设置,但如果您今天设置此作业,它将在下一次跨过该日期时运行。

注意:另一个答案建议添加一个年份列。如果您确实包含此内容,则行为并非完全可预测——这取决于您使用的 chron 实现。

于 2012-07-16T15:32:43.283 回答