ジョブスケジュールの指定方法

最終更新日: 2022年6月23日

各単位の表記

単位 値の範囲 使用できる文字 備考
0-59 , - * /
0-59 , - * /
0-23 , - * /
1-31 , - * ? / L W
1-12 あるいは JAN-DEC , - * /
曜日 1-7 あるいは SUN-SAT , - * ? / L # 「1」は日曜日、「7」は土曜日に対応。
指定しない。あるいは 1970-2099 , - * /

使用できる文字

使用できる文字の使い方は次のとおりです。

文字 使い方 備考・例
* 値の範囲すべて 例えば「分」を「*」にすると、0分から59分まで、になります。
? 特定の値を示さない 「日」「曜日」にのみ指定できます。「日」を設定した場合、「曜日」は "?" としてください。「曜日」を設定した場合、「日」は "?" としてください。両方に "?" と記載することはできません。
- 範囲 例えば「時」を「9-17」にすると、9時から17時(午後5時)まで、になります
, 値の列挙 例えば「月」を「MAR,SEP」にすると、3月と9月、になります。
/ 値の増分 例えば「分」を「0/20」にすると、0分、20分、40分、になります。 また「分」を「5/20」にすると、5分、25分、45分、になります。 「*/20」の場合、「*」は0と見なされます。
L(lでも可) 最終日(Last) 「日」「曜日」にのみ指定できます。例えば「日」を「L」にするとその月の最終日(1月なら1月31日、うるう年でない年2月なら2月28日)となります。また「曜日」を「L」にすると土曜日になります。さらに曜日との組み合わせで、その月の最後の、指定した曜日になります。例えば「6L」はその月の最終金曜日になります。
W(wでも可) 平日(月曜から金曜まで) 「日」にのみ指定できます。 例えば「15W」とした場合、15日に最も近い平日になります。したがって15日が土曜日であれば14日、また日曜日であれば16日になります。しかし「1W」とした場合で、かつ1日が土曜日の場合、前月の金曜日ではなく、その月の3日になります。「W」は、範囲や列挙との組み合わせでは使用できません。特定の日との組み合わせでのみ使用できます。
# 第 n 曜日 「曜日」にのみ指定できます。「4#2」とすると第2水曜日になります

設定例

1分おきに実行する

単位 曜日
0 * * * * ? *
※ 毎分 0 秒になると実行されます。

5分おきに実行する

単位 曜日
0 0/5 * * * ? *

30分おきに実行する

単位 曜日
0 0,30 * * * ? *

毎日9時と17時に実行する

単位 曜日
0 0 9,17 * * ? *

毎週土曜日の午前0時30分に実行する

単位 曜日
0 30 0 ? * 7 *

月の日が3の倍数の日(3,6,9,12,15,18,21,24,27,30)の午前8時30分に実行する

単位 曜日
0 30 8 3/3 * ? *
※ この設定は、ひと月の日数が28,29,31日の月(1,2,3,5,7,8,10,12月)は月末の実行と翌月の月初めの実行の間隔が三日おきではなくなります。

詳細な仕様

  • 「曜日」の範囲は、0-6 ではなく 1-7 です。
  • 「日」と「曜日」を同時に指定することはできません。どちらか一方を「?」にしてください。(両方を「?」とすることはできません。)
  • 現在時刻からN分後、というような指定はできません。24時間のうち指定を行った時間(HH時mm分ss秒)にジョブが実行されるという動作となります。

ダイアログで設定する8.1.0

ジョブの起動時間設定をダイアログで行うことができます。
「スケジュール」内の入力欄をマウスでダブルクリックすると、それぞれの入力ダイアログが開きます。

ジョブスケジュール新規登録画面

「秒」の入力欄をマウスでダブルクリックすると次のようなダイアログが表示されます。標準は「特定のタイミング」になっています。

秒の設定(1)

ここで「任意」にチェックを入れると、秒の入力欄には "*" が設定されます。

秒の設定(2)

タイミングはマウスで選択できます。

秒の設定(3)

間隔(インターバル)として指定することもできます。

秒の設定(4)

秒、分、時は同じようなダイアログ設定です。「日」は "平日のみ" という指定を行えるようになっています。

日の設定

「月」の設定ダイアログは次のとおりです。

月の設定

曜日

「曜日」の設定ダイアログは次のとおりです。

曜日の設定

「年」の設定ダイアログは次のとおりです。

年の設定

多重実行の抑制

ジョブの多重実行を行うことはできません。

あるジョブを 1 分毎に起動させるようにした場合、1 分後にこのジョブの実行が終了していなければ、新しいジョブは実行されません。

トラブルシューティング

過去の日付をスケジューリングすることはできません。

過去の日付を指定すると、無視されます。ログ (system.log) には次のようなメッセージが記録されます。

Jobs cannot be registered. Based on configured schedule, the given trigger will never fire.