スケジュール起動
スケジュール起動用の Server Hook 定義方法を以下にまとめます。
{
"kiicloud://scheduler": {
"<job_name>": {
"cron": "<cron_expression>",
"endpoint": "<endpoint_name>",
"parameters": {
"arg1": "xxxx"
},
"what": "EXECUTE_SERVER_CODE"
}
/* Other hooks */
}
/* Other paths with hooks */
}
cron_expression で指定した時間が来ると、endpoint で指定した Server Code 内の関数が実行されます。各 Hook 定義には、後ほど実行結果履歴を参照する際に利用する job_name を付けます。また必要に応じて、Server Code に渡すパラメータを parameters プロパティに指定できます。
"kiicloud://scheduler" 以下には複数のスケジュールを定義できます。job_name に対する設定は JSON の name / value ペア(Map)として記述するため、設定ごとに必ず別の job_name を指定するようにします(重複していても、Kii Cloud への登録時、エラーにならないためご注意ください)。異なる名前で同一のスケジュールを定義した場合、設定されている数だけ Server Code 内の関数が実行されます。
時間は UTC(協定世界時)で指定してください。
また以下の特殊文字が利用できます。
- アスタリスク(*):フィールドの任意の値にマッチします。
- ハイフン(-):範囲指定に使います。
- スラッシュ(/):間隔値指定に使います。たとえば第 1 フィールド(分)に "0/10" を指定すると「10 分間隔」という意味になります。
- カンマ(,):複数値(値のリスト)の指定に使います。たとえば第 5 フィールド(曜日)に "MON,WED,FRI" を指定すると「月曜、水曜、金曜」という意味になります。
以下にいくつかの例を挙げます。
#毎時実行
0 * * * *
#毎日 00:01 に実行
1 0 * * *
#平日(月~金)の 05:00 に実行
0 5 * * MON-FRI
#毎日 2 時間おき(0 時、2 時、4 時、6 時…)に実行
0 0/2 * * *
#14:00 から 14:55 までの間、5 分おきに毎日実行
0/5 14 * * *
#週末(土~日)の 11:00 と 16:00 に実行
00 11,16 * * SUN,SAT
なお、cron_expression には以下の制限があります。
"*" と "/" は同時に使えません。
- OK:0/5 14 * * *
- NG:*/5 14 * * *
1 つの cron 表記アイテム(分、時間、…)で使えるのは、範囲(例:4-7)、間隔値(例:2/5)、リスト(例:0,5,10,15)のいずれか 1 つのみです。複数の指定方法の併用はできません。
- OK:0,5,10 21-23 * * MON-FRI
- NG:5-8/2 * * * *
月と曜日は同時に指定できません。
- NG:0 0 1 1 SUN
以下にスケジュール起動用の Server Hook の例を挙げます。
{
"DailyMessage_5am": {
"cron": "0 5 * * *",
"endpoint": "sendDailyMessage",
"parameters": {
"time": "5am"
},
"what": "EXECUTE_SERVER_CODE"
},
"DailyMessage_10pm": {
"cron": "0 22 * * *",
"endpoint": "sendDailyMessage",
"parameters": {
"time": "10pm"
},
"what": "EXECUTE_SERVER_CODE"
}
}
この例は、毎日 5:00 と 22:00(UTC:協定世界時)にエンドポイント sendDailyMessage
を実行します。またそれぞれの実行時に、異なったパラメータを Server Code に渡しています(この Server Hook と連動する Server Code の例は スケジュール起動のログ記録 を参照してください)。