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構文は、年の設定を厳密にサポートしていませんが、このジョブを今日設定すると、次にその日付を超えたときに実行されます。

注:もう1つの回答は、年の列を追加することを提案しています。これを含めると、動作は完全に予測可能ではなくなります。使用しているchronの実装によって異なります。

于 2012-07-16T15:32:43.283 に答える