ウォッチャースケジュールトリガー

スケジュール トリガー は、ウォッチの実行を開始する日時を定義します。すべての時間はUTC時間で指定されます。

ウォッチャーは、システムクロックを使用して現在の時間を判断します。スケジュールが期待通りにトリガーされるようにするためには、NTPなどの時間サービスを使用して、クラスター内のすべてのノードの時計を同期させる必要があります。

スロットル期間がウォッチの実行タイミングに影響を与える可能性があることに注意してください。デフォルトのスロットル期間は5秒(5000 ms)です。スロットル期間よりも頻繁なスケジュールを設定した場合、スロットル期間がスケジュールを上書きします。たとえば、スロットル期間を1分(60000 ms)に設定し、スケジュールを10秒ごとに設定した場合、ウォッチは1分に1回以上実行されません。スロットリングに関する詳細は、確認とスロットリングを参照してください。

ウォッチャーは、いくつかのタイプのスケジュールトリガーを提供します:

ウォッチャーの時間ごとのスケジュール

特定の分に毎時トリガーされる schedulehourly スケジュールを使用するには、minute 属性を使用して、ウォッチの実行を開始したい分(または分)を指定します。

minute 属性を指定しない場合、hourly スケジュールはデフォルトで 0 となり、毎時のちょうどの時間にトリガーされます—12:0013:0014:00 など。

1時間ごとのスケジュールの設定

1時間ごとのスケジュールを設定するには、minute 属性で単一の時間を指定します。

たとえば、次の hourly スケジュールは、毎時30分にトリガーされます— 12:3013:3014:30、…:

Js

  1. {
  2. "trigger" : {
  3. "schedule" : {
  4. "hourly" : { "minute" : 30 }
  5. }
  6. }
  7. }

複数回の時間ごとのスケジュールの設定

hourly スケジュールを設定して、1時間の間に複数回トリガーされるようにするには、分の配列を指定します。たとえば、次のスケジュールは、毎時15分ごとにトリガーされます—12:0012:1512:3012:451:001:15、…:

Js

  1. {
  2. "trigger" : {
  3. "schedule" : {
  4. "hourly" : { "minute" : [ 0, 15, 30, 45 ] }
  5. }
  6. }
  7. }

ウォッチャーのデイリースケジュール

特定の時間に毎日トリガーされる scheduledaily スケジュールを使用するには、at 属性を使用して、ウォッチの実行を開始したい時間(または時間)を指定します。

時間は24時間制の HH:mm 形式で指定されます。midnightnoon の予約値を 00:0012:00 に使用することもでき、オブジェクトを使用して時間を指定することができます。

at 属性を指定しない場合、daily スケジュールはデフォルトで毎日午前0時に1回トリガーされます、00:00

デイリースケジュールの設定

1日1回のスケジュールを設定するには、at 属性で単一の時間を指定します。たとえば、次の daily スケジュールは、毎日午後5時に1回トリガーされます:

Js

  1. {
  2. "trigger" : {
  3. "schedule" : {
  4. "daily" : { "at" : "17:00" }
  5. }
  6. }
  7. }

複数回のデイリースケジュールの設定

1日に複数回トリガーされる daily スケジュールを設定するには、時間の配列を指定します。たとえば、次の daily スケジュールは、毎日 00:0012:0017:00 でトリガーされます。

Js

  1. {
  2. "trigger" : {
  3. "schedule" : {
  4. "daily" : { "at" : [ "midnight", "noon", "17:00" ] }
  5. }
  6. }
  7. }

オブジェクトを使用して時間を指定する

HH:mm 文字列構文を使用して時間を指定することに加えて、hourminute 属性を持つオブジェクトとして時間を指定することもできます。

たとえば、次の daily スケジュールは、毎日午後5時に1回トリガーされます:

Js

  1. {
  2. "trigger" : {
  3. "schedule" : {
  4. "daily" : {
  5. "at" : {
  6. "hour" : 17,
  7. "minute" : 0
  8. }
  9. }
  10. }
  11. }
  12. }

オブジェクト表記を使用して複数の時間を指定するには、複数の時間または分を配列として指定します。たとえば、次の daily スケジュールは、毎日 00:0000:3012:0012:3017:0017:30 でトリガーされます:

Js

  1. {
  2. "trigger" : {
  3. "schedule" : {
  4. "daily" : {
  5. "at" : {
  6. "hour" : [ 0, 12, 17 ],
  7. "minute" : [0, 30]
  8. }
  9. }
  10. }
  11. }
  12. }

ウォッチャーのウィークリースケジュール

特定の日と時間に毎週トリガーされる scheduleweekly スケジュールを使用するには、onat 属性を使用して、ウォッチの実行を開始したい日と時間(または日と時間)を指定します。

曜日は名前、略語、または番号で指定できます(日曜日が週の最初の日):

  • sundaymondaytuesdaywednesdaythursdayfridaysaturday
  • sunmontuewedthufrisat
  • 1234567

時間は24時間制の HH:mm 形式で指定されます。midnightnoon の予約値を 00:0012:00 に使用することもできます。

ウィークリースケジュールの設定

1週間に1回のスケジュールを設定するには、on 属性で曜日を指定し、at 属性で時間を指定します。たとえば、次の weekly スケジュールは、毎週金曜日の午後5時に1回トリガーされます:

Js

  1. {
  2. "trigger" : {
  3. "schedule" : {
  4. "weekly" : { "on" : "friday", "at" : "17:00" }
  5. }
  6. }
  7. }

daytime 属性で曜日と時間を指定することもでき、onat と互換性があります。

複数回のウィークリースケジュールの設定

weekly スケジュールを設定して、週に複数回トリガーされるようにするには、曜日と時間の値の配列を指定できます。たとえば、次の weekly スケジュールは、毎週火曜日の午後12時と金曜日の午後5時にトリガーされます:

Js

  1. {
  2. "trigger" : {
  3. "schedule" : {
  4. "weekly" : [
  5. { "on" : "tuesday", "at" : "noon" },
  6. { "on" : "friday", "at" : "17:00" }
  7. ]
  8. }
  9. }
  10. }

また、onminute 属性を持つオブジェクトで、値の配列を含む曜日と時間を指定することもできます。たとえば、次の weekly スケジュールは、毎週火曜日と金曜日の午後12時と午後5時にトリガーされます:

Js

  1. {
  2. "trigger" : {
  3. "schedule" : {
  4. "weekly" : {
  5. "on" : [ "tuesday", "friday" ],
  6. "at" : [ "noon", "17:00" ]
  7. }
  8. }
  9. }
  10. }

ウォッチャーのマンスリースケジュール

特定の日と時間に毎月トリガーされる schedulemonthly スケジュールを使用するには、onat 属性を使用して、ウォッチの実行を開始したい月の日と時間(または日と時間)を指定します。

月の日は、1 から 31 までの数値で指定します(両端を含む)。時間は24時間制の HH:mm 形式で指定されます。midnightnoon の予約値を 00:0012:00 に使用することもできます。

マンスリースケジュールの設定

1ヶ月に1回のスケジュールを設定するには、onat 属性で単一の日と時間を指定します。たとえば、次の monthly スケジュールは、毎月10日の正午にトリガーされます:

Js

  1. {
  2. "trigger" : {
  3. "schedule" : {
  4. "monthly" : { "on" : 10, "at" : "noon" }
  5. }
  6. }
  7. }

daytime 属性で日と時間を指定することもでき、onat と互換性があります。

複数回のマンスリースケジュールの設定

monthly スケジュールを設定して、月に複数回トリガーされるようにするには、日と時間の値の配列を指定できます。たとえば、次の monthly スケジュールは、毎月10日の午後12時と毎月20日の午後5時にトリガーされます:

Js

  1. {
  2. "trigger" : {
  3. "schedule" : {
  4. "monthly" : [
  5. { "on" : 10, "at" : "noon" },
  6. { "on" : 20, "at" : "17:00" }
  7. ]
  8. }
  9. }
  10. }

また、onat 属性を持つオブジェクトで、値の配列を含む日と時間を指定することもできます。たとえば、次の monthly スケジュールは、毎月10日と20日の午前12時と午後12時にトリガーされます。

Js

  1. {
  2. "trigger" : {
  3. "schedule" : {
  4. "monthly" : {
  5. "on" : [ 10, 20 ],
  6. "at" : [ "midnight", "noon" ]
  7. }
  8. }
  9. }
  10. }

ウォッチャーの年次スケジュール

特定の日と時間に毎年トリガーされる scheduleyearly スケジュールを使用するには、inon、および at 属性を使用して、ウォッチの実行を開始したい月、日、時間(または月、日、時間)を指定します。

月は名前、略語、または番号で指定できます:

  • januaryfebruarymarchaprilmayjunejulyaugustseptemberoctobernovemberdecember
  • janfebmaraprmayjunjulaugsepoctnovdec
  • 123456789101112

月の日は、1 から 31 までの数値で指定します(両端を含む)。時間は24時間制の HH:mm 形式で指定されます。midnightnoon の予約値を 00:0012:00 に使用することもできます。

年次スケジュールの設定

1年に1回のスケジュールを設定するには、in 属性で月を指定し、on 属性で日を指定し、at 属性で時間を指定します。たとえば、次の yearly スケジュールは、1月10日の正午に1回トリガーされます:

Js

  1. {
  2. "trigger" : {
  3. "schedule" : {
  4. "yearly" : { "in" : "january", "on" : 10, "at" : "noon" }
  5. }
  6. }
  7. }

monthday、および time 属性で月、日、時間を指定することもでき、inon、および at と互換性があります。

複数回の年次スケジュールの設定

yearly スケジュールを設定して、年に複数回トリガーされるようにするには、月、日、時間の値の配列を指定できます。たとえば、次の yearly スケジュールは、1月10日の正午と7月20日の午後5時に年に2回トリガーされます。

Js

  1. {
  2. "trigger" : {
  3. "schedule" : {
  4. "yearly" : [
  5. { "in" : "january", "on" : 10, "at" : "noon" },
  6. { "in" : "july", "on" : 20, "at" : "17:00" }
  7. ]
  8. }
  9. }
  10. }

また、inon、および minute 属性を持つオブジェクトで、値の配列を含む月、日、時間を指定することもできます。たとえば、次の yearly スケジュールは、1月10日、1月20日、12月10日、12月20日の午前12時と午後12時にトリガーされます。

Js

  1. {
  2. "trigger" : {
  3. "schedule" : {
  4. "yearly" : {
  5. "in" : [ "jan", "dec" ],
  6. "on" : [ 10, 20 ],
  7. "at" : [ "midnight", "noon" ]
  8. }
  9. }
  10. }
  11. }

ウォッチャークロンスケジュール

cron式を使用して、ウォッチを実行するタイミングを指定する schedule を定義します。

cron式は強力ですが、定期的に発生するスケジュールは他のスケジュールタイプで設定する方が簡単です。cronスケジュールを使用する必要がある場合は、elasticsearch-croneval で確認してください。

1回の時間でcronスケジュールを設定

cron スケジュールを設定するには、cron式を文字列値として指定するだけです。たとえば、次のスニペットは、毎日正午にトリガーされる cron スケジュールを設定します:

Js

  1. {
  2. ...
  3. "trigger" : {
  4. "schedule" : {
  5. "cron" : "0 0 12 * * ?"
  6. }
  7. }
  8. ...
  9. }

複数回のcronスケジュールを設定

cron スケジュールを設定して、複数回トリガーされるようにするには、cron式の配列を指定できます。たとえば、次の cron スケジュールは、平日の偶数分と週末の奇数分にトリガーされます:

Js

  1. {
  2. ...
  3. "trigger" : {
  4. "schedule" : {
  5. "cron" : [
  6. "0 0/2 * ? * MON-FRI",
  7. "0 1-59/2 * ? * SAT-SUN"
  8. ]
  9. }
  10. }
  11. ...
  12. }

cron式を検証するためにcronevalを使用

Elasticsearchは、$ES_HOME/bin ディレクトリにある elasticsearch-croneval コマンドラインツールを提供しており、cron式が有効であり、期待される結果を生成するかどうかを確認できます。

cron式を検証するには、elasticsearch-croneval にパラメータとして渡します:

Bash

  1. bin/elasticsearch-croneval "0 0/1 * * * ?"

ウォッチャーのインターバルスケジュール

固定時間間隔でトリガーされる schedule。間隔は秒、分、時間、日、または週で設定できます:

  • "Xs" - X 秒ごとにトリガーします。たとえば、"30s" は30秒ごとを意味します。
  • "Xm" - X 分ごとにトリガーします。たとえば、"5m" は5分ごとを意味します。
  • "Xh" - X 時間ごとにトリガーします。たとえば、"12h" は12時間ごとを意味します。
  • "Xd" - X 日ごとにトリガーします。たとえば、"3d" は3日ごとを意味します。
  • "Xw" - X 週ごとにトリガーします。たとえば、"2w" は2週間ごとを意味します。

時間単位を指定しない場合、デフォルトは秒になります。

間隔値は、Elasticsearchで使用される標準の 時間値 とは異なります。ミリ秒やナノ秒で間隔を設定することはできません。

インターバルスケジュールの設定

interval スケジュールを設定するには、間隔を表す文字列値を指定します。時間単位(smhd、または w)を省略すると、デフォルトは秒になります。

たとえば、次の interval スケジュールは、5分ごとにトリガーされます:

Js

  1. {
  2. "trigger" : {
  3. "schedule" : {
  4. "interval" : "5m"
  5. }
  6. }
  7. }