時間ベースのジョブスケジュールセクション

[Triggers section] タブでは、ジョブが実行されるタイミングが構成されます。ジョブごとにさまざまな時間ベースのスケジュール構成を追加でき、それぞれに cron 形式の式が関連付けられます (「 Cron 式の構文 」のセクションを参照)。

オプションで、ジョブの開始時間 ([Start time]) と終了時間 ([End time]) を割り当てることができます。その場合、cron 式によって指定されていて、現在時刻が指定された間隔内である場合にのみ、ジョブが実行されます。開始時間と終了時間は手動で入力でき、日付 (yyyy-MM-dd) と時刻 (HH:mm) の構文に従うか、各フィールドに関連付けられたカレンダーを使用します。

さらに、オプションで、トリガーと他のジョブの依存関係を定義できるため、依存している側のジョブが正常に終了するまで、このトリガーの実行を待機させることができます (詳細については、「 ジョブ間の依存関係 」のセクションを参照)。

デフォルトでは、生成された cron 式は、毎日夜の 12:00 にジョブを実行することを表しています。cron 式は手動で入力するか (「 Cron 式の構文 」のセクションに記載された構文を参照)、cron 式のビジュアルエディターを使用して視覚的に設定できます。

ビジュアルエディターでは、ジョブを実行する分/時/日/月および曜日を指定できます。また、「毎日」、「毎日、5 分ごと」などの通常の定期的なスケジュールを指定することもできます。

Cron 式の構文

Quartz の cron 式 が使用されます。式は、空白で区切られた 6 つの必須フィールドと 1 つのオプションフィールドで構成されます。式のすべてのフィールドの値が現在時刻と一致すると、ジョブが実行されます。フィールドはそれぞれ以下のように記述されます。

フィールド名

許容される値

許容される特殊文字

Seconds

0 ~ 59

, - * /

Minutes

0 ~ 59

, - * /

Hours

0 ~ 23

, - * /

Day-of-month

1 ~ 31

, - * ? / L W

Month

1 ~ 12 または JAN ~ DEC

, - * /

Day-of-week

1 ~ 7 または SUN ~ SAT

, - * ? / L #

Year (オプション)

空、1970 ~ 2199

, - * /

各フィールドでは、単一の値または値のセットが許容されます。フィールドには、複数の方法でさまざまな値を指定できます。

  • 「*」は、すべての値を指定するために使用されます。たとえば、分フィールドの「*」は「毎分」を意味します。

  • 「?」は、日付フィールドと曜日フィールドで許容され、「特定の値なし」を指定するために使用されます。これは、2 つのフィールドのいずれかを指定し、他方は指定しないでおく必要がある場合に役立ちます。

    注釈

    「?」を日付と曜日の両方の値で指定することはできません (これらのフィールドのいずれかのみで使用する必要があります)。

  • 「-」は、範囲を指定するために使用されます。たとえば、時間フィールドの「10-12」は、「10 時、11 時、12 時」を意味します。

  • 「,」は、追加の値を指定するために使用されます。たとえば、曜日フィールドの「MON,WED,FRI」は、「月曜日、水曜日、金曜日」を意味します。

  • 「/」は、増分を指定するために使用されます。たとえば、秒フィールドの「0/15」は「秒 0、15、30、45」を意味します。さらに、秒フィールドの「5/15」は「秒 5、20、35、50」を意味します。「/」の前に「*」を指定すると、開始値を 0 に指定した場合と等しくなります。基本的に、式の各フィールドには、オンまたはオフを切り替えることができる数値のセットがあります。秒と分の場合、数値の範囲は 0 ~ 59 です。時間の場合は 0 ~ 23、日付の場合は 0 ~ 31、月の場合は 1 ~ 12 です。「/」では、特定のセット内の「何番目」の値をオンにするかを指定できます。そのため、月フィールドの「7/6」は、「7」番目の月のみをオンにします。6 番目の月ごと、という意味ではありません。この微妙な違いに注意してください。

  • 「L」は日付フィールドと曜日フィールドで許容されます。この文字は「last」の短縮形ですが、2 つのフィールドのそれぞれで異なる意味を持っています。たとえば、日付フィールドの値「L」は「その月の最終日」、つまり、1 月は 31 日、2 月は 28 日 (うるう年以外) です。曜日フィールドで使用された場合は、単に「7」つまり「SAT」 (土曜日) を意味しています。曜日フィールドで別の値の後に使用された場合は、「その月の最後の xxx 日」を意味します。たとえば、「6L」は「その月の最後の金曜日」を意味します。また、その月の最終日からのオフセットも指定できます。たとえば、「L-3」はカレンダー月の最終日までの 3 日間を意味します。「L」オプションを使用する場合は、リストや値の範囲を指定しないように注意してください。混乱や予期せぬ結果を招きます。

  • 「W」は、日付フィールドで許容されます。この文字は、特定の日に最も近い平日 (月曜日~金曜日) を指定するために使用されます。たとえば、日付フィールドの値として「15W」を指定した場合は、「その月の 15 日目に最も近い平日」を意味します。15 日目が土曜日の場合は、14 日目の金曜日になります。15 日目が日曜日の場合は、16 日目の月曜日になります。15 日目が火曜日の場合は、15 日目の火曜日です。ただし、日付フィールドの値として「1W」を指定し、初日が土曜日の場合は、3 日目の月曜日となります。月の日付の境界を超えることはありません。「W」文字は、日付が範囲やリストではなく、単一の日付の場合にだけ指定できます。

  • 「L」と「W」を日付式で組み合わせて「LW」として指定することもできます。これは、「その月の最後の平日」という意味です。

  • 「#」は曜日フィールドで許容されます。この文字は、その月の「何番目」の XXX 日を指定するために使用されます。たとえば、曜日フィールドの「6#3」という値はその月の 3 番目の金曜日 (6 日 = 金曜日、「#3」 = その月の 3 番目) を意味します。他の例として、「2#1」はその月の最初の月曜日を意味し、「4#5」はその月の 5 番目の水曜日を意味します。「#5」を指定して、その月に 5 番目の特定の曜日がない場合は、何も起こりません。「#」を使用する場合、曜日フィールドには 1 つの式のみを指定できます (「3#1,6#3」は 2 つの式が存在するため無効)。

  • 特殊文字、月と曜日の名前では、大文字小文字が区別されません。

注釈

オーバーフロー範囲、つまり、右側より左側の数値の方が大きい範囲がサポートされています。22 ~ 2 は、夜の 10 時から深夜の 2 時まで、または 11 月から 2 月までとなります。オーバーフロー範囲を過剰に使用すると、無意味な範囲が作成され、どの解釈を選択するべきかが判断できなくなるので注意する必要があります。「0 0 14-6 ? * FRI-MON」はその一例です。