Cron(クーロン)形式のスケジュール

フォローする

Cronスケジュールは、「秒」 「分」 「時」 「日」 「月」 「曜日」 「年(オプション)」のサブフィールドで構成され、これらのサブフィールドはロボットの実行時間を記述します。

各サブフィールドで使用可能な値は下記の表のとおりです。

サブフィールド 有効値
0~59の整数
0~59の整数
0~23の整数
1~31の整数 ※該当月の日数に注意して下さい
1~12の整数、またはJANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC の文字列
曜日 1~7の整数またはSUNMONTUEWEDTHUFRISATの文字列
※整数で記述する場合、下記の環境で対応する曜日が異なります。
【MCの場合】
1=日曜日、2=月曜日、……、6=金曜日、7=土曜日
Launcher(miniユーザーのみ)の場合】
1=月曜日、2=火曜日、……、6=土曜日、7=日曜日
(オプションフィールド 1970~2099の整数

 

Cronスケジュールのパターンは、各サブフィールドをスペースで区切る形式で記述します。
例えば、「毎週水曜日の午後 12:00」をスケジュールする場合は、「 0 0 12 ? * WED 」と記述します。
mceclip0.png

MCのスケジュール設定画面
mceclip1.png

 

サブフィールドには範囲やリストを指定することも可能です。
例えば、「曜日」フィールド では下記の例のように記述することができます。
<例>
“MON-FRI”(月曜日~金曜日)
"MON, WED, FRI"(月曜日、水曜日、金曜日)
"MON-WED,SAT" (月曜日~水曜日と土曜日)

また、下記のような特殊文字を使用することも可能です。

記号 定義
ワイルドカード (該当フィールドで使用可能なすべての値)を指定する。例えば、「月」フィールドに "*" と入力した場合は「毎月」を意味し、「曜日」フィールドに "*" と入力した場合は「毎日」を意味する。
値にインクリメント(増量)を指定する。例えば、「分」フィールドに"0/15" を入力すると、「0 分から開始して 15分毎」を意味し、"3/20" を入力すると、「3分から開始して 20分毎」を意味する。"3/20"は"3,23,43"と指定することと同義。(※1)
日フィールド及び曜日フィールドでのみ使用でき、「指定値なし」を意味する。
上記2つのフィールドのうち一方に何かを指定する必要があり、もう一方には指定が不要な場合に重宝する。
日フィールド及び曜日フィールドでのみ使用できる。"L" は "last" を省略したもので、その意味は2つのフィールドごとに異なる。
日フィールドでは「月の最終日」を意味する。例えば1月では31日、うるう年以外の年の2月では28日が該当する。
曜日フィールドでは  "7" または "SAT" (Launcherの場合は"SAN")を意味するが、別の値と組み合わせて使用すると、その意味は「月の最終 x 曜日」になる。例えば、"6L"(Launcherの場合は"5L") または "FRIL" の意味はどちらも「月の最終金曜日」。
特殊文字 "L" を使用する際は、混乱の元となるためリストや範囲は指定しない方がよい。
曜日フィールドで使用でき、その月の「第 n 番目の」X 曜日を指定する。例えば、”6#3" (Launcherの場合は5#3)または"FRI#3" の意味は、「その月の第 3 金曜日」。(※2)
その日に一番近い平日 (月曜~金曜) を指定する。例えば、日フィールドに "15W" と入力すると、「その月の 15 日に一番近い平日」を指定することになる。

 

「日」フィールドおよび「曜日」フィールドの両方に固定値を指定することはできません。
どちらかに”?”を指定する必要があります。

下記はCronスケジュールの具体的な記入例です。Cronスケジュール登録時の参考にしてください。

Cron スケジュール 説明
0 0 12 * * ? 毎日午前 12 (正午) に実行
0 15 10 ? * * 毎日午前 10:15 に実行
0 15 10 * * ? 毎日午前 10:15 に実行
0 15 10 * * ? * 毎日午前 10:15 に実行
0 15 10 * * ? 2019 2019 年中の毎日午前 10:15 に実行
0 * 14 * * ? 毎日午後 2 時から午後 2:59 までの間、毎分実行
0 0/5 14 * * ? 毎日午後 2 時から午後 2:55 までの間、5 分毎に実行
0 0/5 14,18 * * ? 毎日午後 2 時から午後 2:55 までの間、5 分毎に実行、
及び毎日午後 6 時から午後 6:55 までの間、5 分毎に実行
0 0-5 14 * * ? 毎日午後 2 時から午後 2:05 までの間、毎分実行
0 10,44 14 ? 3 WED 3 月の毎水曜日の午後 2:10 および午後 2:44 に実行
0 15 10 ? * MON-FRI 毎週月曜日、火曜日、水曜日、木曜日、および金曜日の午前 10:15 に実行
0 15 10 15 * ? 毎月 15 日の午前 10:15 に実行
0 15 10 L * ? 毎月最終日の午前 10:15 に実行
0 15 10 ? * 6L 毎月最終金曜日(Launcherの場合は土曜日)の午前 10:15 に実行
0 15 10 ? * 6L 2016-2019 2016、2017、2018、および2019年の毎月最終金曜日(Launcherの場合は土曜日)の午前 10:15 に実行
0 15 10 ? * 6#3 毎月第 3 金曜日(Launcherの場合は土曜日)の午前 10:15 に実行

 

 Cron形式を使用した曜日や日時指定のスケジュール登録方法については下記のナレッジを参照してください。
MCで曜日や日時を指定してスケジュール登録する方法
BizRobo! Launcherで曜日や日時を指定してスケジュール登録する方法

 

注意事項

(※1)
「〇〇秒毎」や「〇〇分毎」などの設定を行った場合、該当フィールド内でのみ完結します(各フィールドで使用可能な値の範囲を超えた時間の指定はできません)。
<例>
MCの「スケジュールの編集」ダイアログにて「パターン」項目に”0 0/7 12-14 * * ?”( 毎日午後 12:00から14:59まで7分毎に実行)と記述
1199_2.png

ロボットは12時から7分毎に実行を繰り返すため、最初の実行から7分後(12:07)、14分後(12:14)、21分後(12:21)…と実行され、9回目は1回目の実行(12:00)から56分後の12:56に実行されます。

10回目の実行のとき、12:56から7分後は13:03ですが、これは1回目の実行から63分後となり、「分」フィールドで使用可能な値「59」を越えた時間となってしまいます。

Cronスケジュールは各フィールド内の使用可能な値の範囲内で完結するため、例題の場合は63分後には実行されず、再び0分に戻ります。

そのため、10回目は13:00に実行され、11回目以降は7分毎に実行を繰り返します。

1199_3.png

 

(※2)
#を使用した複数のn番目のX 曜日の指定には対応していません。
例として、下記のような指定はできません。
<例>
・第2、第3の月曜日
・第2の月曜日と金曜日

2人中2人がこの記事が役に立ったと言っています

コメント

0件のコメント

記事コメントは受け付けていません。