データデザイナーの高度なスケジューラのCron式
重要 - 画像/情報は四半期ごとのリリースで更新されます!
四半期ごとのリリースにて、最新の機能・情報を反映し、画像を含めた情報は更新されます。
概要
この記事では、管理者がデータスペースの更新をスケジュールする際にCron EXPRESSIONを使用する方法について解説します。Gainsightは、以下の「追加リソース」セクションにリストされている「データ スペースの更新のスケジュール」の記事を参照してから、この記事に進むことを推奨します。
データデザイナーのアドバンススケジューラは、Cron EXPRESSIONを使用してデータスペース更新をスケジューリングします。これにより、ユーザーはベーシックスケジューラと比較して、より頻繁にデータを更新することができます。データスペースは、1日に複数回実行することができます。高度なユースケースには、2時間ごと、および毎月1日と15日にデータスペースを実行することが含まれます。
メモ:データスペースの実行間の最小間隔は2時間です。
Cron EXPRESSIONの形式
データスペースを柔軟に更新するために、GainsightではCron EXPRESSIONを使用することができます。これは、スペースで区切られた6つまたは7つのフィールドから構成される文字列で、スケジュールの詳細を定義します。各フィールドはサブEXPRESSIONを表し、特定の値のみを許可します。これらの値を特殊文字と組み合わることにより、スケジュールを定義します。Cron EXPRESSIONで使用することができる値と特殊文字については、次の表を参照してください。
フィールドオーダ |
フィールド名 |
必須 |
許容値 |
許容された特殊文字 |
---|---|---|---|---|
1 |
秒 |
はい |
0-59 |
, - * / |
2 |
分 |
はい |
0-59 |
, - * / |
3 |
時間 |
はい |
0-23 |
, - * / |
4 |
月の日 |
はい |
1-31 |
, - * ? / L W |
5 |
月 |
はい |
1-12 または JAN-DEC |
, - * / |
6 |
週の日 |
はい |
1-7 または SUN-SAT |
, - * ? / L # |
7 |
年 |
いいえ |
空, 1970-2099 |
, - * / |
特殊文字
以下は、Cron EXPRESSIONで使用される特殊文字の一覧です。
- * (“all values”) - フィールド内のすべての値を選択するために使われます。たとえば、分フィールドの“”は、*「毎分」を意味します。
- ? (“no specific value”) - 文字が許可されている2つのフィールドの一方に何かを指定する必要がある場合に便利ですが、もう一方には指定できません。たとえば、月の特定の日 (たとえば10日) に、たとえその日がどの曜日でもトリガーを起動するには、月の日付フィールドに“10”を使用し、曜日フィールドには "?"と入力します。詳しい説明については、例の章を参照してください。
- ”- ”範囲を指定するために使用されます。たとえば、時間フィールドの“10-12”は、「10、11、および12 時」を意味します。
- ”、”追加の値を指定するために使用されます。例えば、曜日フィールドの「MON,WED,FRI」は、「月曜日、水曜日、および金曜日」を意味します。
- ”/”増分を指定するために使用されます。たとえば、時間フィールドの“0/15”は、「0、15、30、および45分」を意味します。そして、秒フィールドの“5/15”は、「5、20、35、および50秒」を意味します。”-”文字の後に‘/’を指定することもできます。この場合、 ‘’ は ‘/’の前に‘0’があることと同じです。日付フィールドの‘1/3’は、「月の最初の日から 3 日ごとに起動する」ことを意味します。
- L (“last”) - 許可されている2つのフィールドのそれぞれで異なる意味を持ちます。例えば、日付フィールドの値“L”は「月の最後の日」を意味します。つまり、1月は31日、うるう年以外の2月は28日です。曜日フィールドで単独で使用される場合は、単に「7」または「SAT」を意味します。ただし、曜日フィールドで別の値の後に使用されると、「月の最後の xxx 日」を意味します。例えば、「6L」は「月の最後の金曜日」を意味します。月の最終日からのオフセットを指定することもできます。例えば、「L-3」は暦月の最終日から3日目を意味します。
メモ:‘L’ オプションを使用する場合、リストや値の範囲を指定しないことが重要です。混乱したり予期しない結果が得られる場合があるためです。
- W (“weekday”) - 特定の日に最も近い平日 (月曜日~金曜日) を指定するために使われます。例えば、日付フィールドの値として“15W”を指定する場合の意味は次のとおりです。「その月の15日に最も近い平日」となります。従って、15日が土曜日の場合、トリガーは14日の金曜日に起動されます。従って、15日が日曜日の場合、トリガーは16日の月曜日に起動されます。従って、15日が火曜日の場合、それは15日の火曜日に起動されます。但し、日付の値として“1W”を指定し、1日が土曜日の場合、トリガーは 3日の月曜日に起動されます。これは、月の日の境界を「ジャンプ」しないためです。‘W’文字は、日付が単一の日であり、日の範囲またはリストではない場合にのみ指定することができます。
メモ:'L' と 'W' の文字を日付フィールドで組み合わせて 'LW' を生成することも可能です。これは、*「月の最後の平日」* に変換されます。
- ”#” - 月の「n番目」のXXX日を指定するために使用されます。例えば、曜日フィールドの値“6#3”は、「その月の第3金曜日」を意味します (day 6 = 金曜日、“#3” = その月の3番目)。その他の例:「2#1」 = 月の第1月曜日、「4#5」 = 月の第5水曜日。「#5」を指定し、指定された曜日がその月に5つない場合、その月はトリガーが発生しません。
メモ:有効な文字と月と曜日の名前は、大文字と小文字で区別がありません。MONはmonと同じです。
例:
次のスケジュールとそれぞれのCron EXPRESSIONを考えて見てください。
ルール実行スケジュール |
Cron EXPRESSION |
---|---|
4時間ごと |
0 0 */4 ? * * |
毎月1日と15日 |
0 0 0 1,15 * ? |
90日に1回、午前8時15分 |
0 15 8 1 1/3 ? * |
毎月最終日の正午 |
0 0 12 L * ? |
毎月第1月曜日の正午 |
0 0 12 ? 1/1 MON#1 * |
「90日に1回、午前8時15分」のデータスペースの実行スケジュールを考えて見てください。月の日数の最大数は31日で、オーダー4で90日を表記できません。代わりに、オーダー5で1/3を使ってデータスペースを3か月に1回実行し、オーダー4でデータスペースを3か月ごとに月の1日に実行できます。これにより、データスペースが約90日間使用されます。次回のデータスペースの実行スケジュールは次のとおりになります:
- 2017年10月1日 日曜日 午前8:15
- 2018年1月1日 月曜日 午前8:15
- 2018年4月1日 日曜日 午前8:15
- 2018年7月1日 日曜日 午前8:15
- 2018年10月1日 月曜日 午前8:15