可以使用cronj4设置开始日期吗?

时间:2012-07-16 15:21:44

标签: java scheduled-tasks cron4j

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

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

使用cron4j,工作可以安排在“下周六”或“12/21/2012”开始吗?

3 个答案:

答案 0 :(得分: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个月进行。

答案 1 :(得分:1)

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

编辑:cron4j似乎不支持可选的年份表达式,所以看起来你可以定义0 0 21 12 *并让工作每年12月21日运行。

答案 2 :(得分:1)

是。例如:

0 0 21 12 *

这说是在12月21日凌晨12点运行。

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

注意:另一个答案建议添加一年列。如果你确实包含了这个,那么这个行为并不是完全可以预测的 - 它取决于你正在使用的chron实现。