ウォッチャースケジュールトリガー
スケジュール トリガー は、ウォッチの実行を開始する日時を定義します。すべての時間はUTC時間で指定されます。
ウォッチャーは、システムクロックを使用して現在の時間を判断します。スケジュールが期待通りにトリガーされるようにするためには、NTPなどの時間サービスを使用して、クラスター内のすべてのノードの時計を同期させる必要があります。
スロットル期間がウォッチの実行タイミングに影響を与える可能性があることに注意してください。デフォルトのスロットル期間は5秒(5000 ms)です。スロットル期間よりも頻繁なスケジュールを設定した場合、スロットル期間がスケジュールを上書きします。たとえば、スロットル期間を1分(60000 ms)に設定し、スケジュールを10秒ごとに設定した場合、ウォッチは1分に1回以上実行されません。スロットリングに関する詳細は、確認とスロットリングを参照してください。
ウォッチャーは、いくつかのタイプのスケジュールトリガーを提供します:
ウォッチャーの時間ごとのスケジュール
特定の分に毎時トリガーされる schedule
。hourly
スケジュールを使用するには、minute
属性を使用して、ウォッチの実行を開始したい分(または分)を指定します。
minute
属性を指定しない場合、hourly
スケジュールはデフォルトで 0
となり、毎時のちょうどの時間にトリガーされます—12:00
、13:00
、14:00
など。
1時間ごとのスケジュールの設定
1時間ごとのスケジュールを設定するには、minute
属性で単一の時間を指定します。
たとえば、次の hourly
スケジュールは、毎時30分にトリガーされます— 12:30
、13:30
、14:30
、…:
Js
{
"trigger" : {
"schedule" : {
"hourly" : { "minute" : 30 }
}
}
}
複数回の時間ごとのスケジュールの設定
hourly
スケジュールを設定して、1時間の間に複数回トリガーされるようにするには、分の配列を指定します。たとえば、次のスケジュールは、毎時15分ごとにトリガーされます—12:00
、12:15
、12:30
、12:45
、1:00
、1:15
、…:
Js
{
"trigger" : {
"schedule" : {
"hourly" : { "minute" : [ 0, 15, 30, 45 ] }
}
}
}
ウォッチャーのデイリースケジュール
特定の時間に毎日トリガーされる schedule
。daily
スケジュールを使用するには、at
属性を使用して、ウォッチの実行を開始したい時間(または時間)を指定します。
時間は24時間制の HH:mm
形式で指定されます。midnight
と noon
の予約値を 00:00
と 12:00
に使用することもでき、オブジェクトを使用して時間を指定することができます。
at
属性を指定しない場合、daily
スケジュールはデフォルトで毎日午前0時に1回トリガーされます、00:00
。
デイリースケジュールの設定
1日1回のスケジュールを設定するには、at
属性で単一の時間を指定します。たとえば、次の daily
スケジュールは、毎日午後5時に1回トリガーされます:
Js
{
"trigger" : {
"schedule" : {
"daily" : { "at" : "17:00" }
}
}
}
複数回のデイリースケジュールの設定
1日に複数回トリガーされる daily
スケジュールを設定するには、時間の配列を指定します。たとえば、次の daily
スケジュールは、毎日 00:00
、12:00
、17:00
でトリガーされます。
Js
{
"trigger" : {
"schedule" : {
"daily" : { "at" : [ "midnight", "noon", "17:00" ] }
}
}
}
オブジェクトを使用して時間を指定する
HH:mm
文字列構文を使用して時間を指定することに加えて、hour
と minute
属性を持つオブジェクトとして時間を指定することもできます。
たとえば、次の daily
スケジュールは、毎日午後5時に1回トリガーされます:
Js
{
"trigger" : {
"schedule" : {
"daily" : {
"at" : {
"hour" : 17,
"minute" : 0
}
}
}
}
}
オブジェクト表記を使用して複数の時間を指定するには、複数の時間または分を配列として指定します。たとえば、次の daily
スケジュールは、毎日 00:00
、00:30
、12:00
、12:30
、17:00
、17:30
でトリガーされます:
Js
{
"trigger" : {
"schedule" : {
"daily" : {
"at" : {
"hour" : [ 0, 12, 17 ],
"minute" : [0, 30]
}
}
}
}
}
ウォッチャーのウィークリースケジュール
特定の日と時間に毎週トリガーされる schedule
。weekly
スケジュールを使用するには、on
と at
属性を使用して、ウォッチの実行を開始したい日と時間(または日と時間)を指定します。
曜日は名前、略語、または番号で指定できます(日曜日が週の最初の日):
sunday
、monday
、tuesday
、wednesday
、thursday
、friday
、saturday
sun
、mon
、tue
、wed
、thu
、fri
、sat
1
、2
、3
、4
、5
、6
、7
時間は24時間制の HH:mm
形式で指定されます。midnight
と noon
の予約値を 00:00
と 12:00
に使用することもできます。
ウィークリースケジュールの設定
1週間に1回のスケジュールを設定するには、on
属性で曜日を指定し、at
属性で時間を指定します。たとえば、次の weekly
スケジュールは、毎週金曜日の午後5時に1回トリガーされます:
Js
{
"trigger" : {
"schedule" : {
"weekly" : { "on" : "friday", "at" : "17:00" }
}
}
}
day
と time
属性で曜日と時間を指定することもでき、on
と at
と互換性があります。
複数回のウィークリースケジュールの設定
weekly
スケジュールを設定して、週に複数回トリガーされるようにするには、曜日と時間の値の配列を指定できます。たとえば、次の weekly
スケジュールは、毎週火曜日の午後12時と金曜日の午後5時にトリガーされます:
Js
{
"trigger" : {
"schedule" : {
"weekly" : [
{ "on" : "tuesday", "at" : "noon" },
{ "on" : "friday", "at" : "17:00" }
]
}
}
}
また、on
と minute
属性を持つオブジェクトで、値の配列を含む曜日と時間を指定することもできます。たとえば、次の weekly
スケジュールは、毎週火曜日と金曜日の午後12時と午後5時にトリガーされます:
Js
{
"trigger" : {
"schedule" : {
"weekly" : {
"on" : [ "tuesday", "friday" ],
"at" : [ "noon", "17:00" ]
}
}
}
}
ウォッチャーのマンスリースケジュール
特定の日と時間に毎月トリガーされる schedule
。monthly
スケジュールを使用するには、on
と at
属性を使用して、ウォッチの実行を開始したい月の日と時間(または日と時間)を指定します。
月の日は、1
から 31
までの数値で指定します(両端を含む)。時間は24時間制の HH:mm
形式で指定されます。midnight
と noon
の予約値を 00:00
と 12:00
に使用することもできます。
マンスリースケジュールの設定
1ヶ月に1回のスケジュールを設定するには、on
と at
属性で単一の日と時間を指定します。たとえば、次の monthly
スケジュールは、毎月10日の正午にトリガーされます:
Js
{
"trigger" : {
"schedule" : {
"monthly" : { "on" : 10, "at" : "noon" }
}
}
}
day
と time
属性で日と時間を指定することもでき、on
と at
と互換性があります。
複数回のマンスリースケジュールの設定
monthly
スケジュールを設定して、月に複数回トリガーされるようにするには、日と時間の値の配列を指定できます。たとえば、次の monthly
スケジュールは、毎月10日の午後12時と毎月20日の午後5時にトリガーされます:
Js
{
"trigger" : {
"schedule" : {
"monthly" : [
{ "on" : 10, "at" : "noon" },
{ "on" : 20, "at" : "17:00" }
]
}
}
}
また、on
と at
属性を持つオブジェクトで、値の配列を含む日と時間を指定することもできます。たとえば、次の monthly
スケジュールは、毎月10日と20日の午前12時と午後12時にトリガーされます。
Js
{
"trigger" : {
"schedule" : {
"monthly" : {
"on" : [ 10, 20 ],
"at" : [ "midnight", "noon" ]
}
}
}
}
ウォッチャーの年次スケジュール
特定の日と時間に毎年トリガーされる schedule
。yearly
スケジュールを使用するには、in
、on
、および at
属性を使用して、ウォッチの実行を開始したい月、日、時間(または月、日、時間)を指定します。
月は名前、略語、または番号で指定できます:
january
、february
、march
、april
、may
、june
、july
、august
、september
、october
、november
、december
jan
、feb
、mar
、apr
、may
、jun
、jul
、aug
、sep
、oct
、nov
、dec
1
、2
、3
、4
、5
、6
、7
、8
、9
、10
、11
、12
月の日は、1
から 31
までの数値で指定します(両端を含む)。時間は24時間制の HH:mm
形式で指定されます。midnight
と noon
の予約値を 00:00
と 12:00
に使用することもできます。
年次スケジュールの設定
1年に1回のスケジュールを設定するには、in
属性で月を指定し、on
属性で日を指定し、at
属性で時間を指定します。たとえば、次の yearly
スケジュールは、1月10日の正午に1回トリガーされます:
Js
{
"trigger" : {
"schedule" : {
"yearly" : { "in" : "january", "on" : 10, "at" : "noon" }
}
}
}
month
、day
、および time
属性で月、日、時間を指定することもでき、in
、on
、および at
と互換性があります。
複数回の年次スケジュールの設定
yearly
スケジュールを設定して、年に複数回トリガーされるようにするには、月、日、時間の値の配列を指定できます。たとえば、次の yearly
スケジュールは、1月10日の正午と7月20日の午後5時に年に2回トリガーされます。
Js
{
"trigger" : {
"schedule" : {
"yearly" : [
{ "in" : "january", "on" : 10, "at" : "noon" },
{ "in" : "july", "on" : 20, "at" : "17:00" }
]
}
}
}
また、in
、on
、および minute
属性を持つオブジェクトで、値の配列を含む月、日、時間を指定することもできます。たとえば、次の yearly
スケジュールは、1月10日、1月20日、12月10日、12月20日の午前12時と午後12時にトリガーされます。
Js
{
"trigger" : {
"schedule" : {
"yearly" : {
"in" : [ "jan", "dec" ],
"on" : [ 10, 20 ],
"at" : [ "midnight", "noon" ]
}
}
}
}
ウォッチャークロンスケジュール
cron式を使用して、ウォッチを実行するタイミングを指定する schedule
を定義します。
cron式は強力ですが、定期的に発生するスケジュールは他のスケジュールタイプで設定する方が簡単です。cronスケジュールを使用する必要がある場合は、elasticsearch-croneval
で確認してください。
1回の時間でcronスケジュールを設定
cron
スケジュールを設定するには、cron式を文字列値として指定するだけです。たとえば、次のスニペットは、毎日正午にトリガーされる cron
スケジュールを設定します:
Js
{
...
"trigger" : {
"schedule" : {
"cron" : "0 0 12 * * ?"
}
}
...
}
複数回のcronスケジュールを設定
cron
スケジュールを設定して、複数回トリガーされるようにするには、cron式の配列を指定できます。たとえば、次の cron
スケジュールは、平日の偶数分と週末の奇数分にトリガーされます:
Js
{
...
"trigger" : {
"schedule" : {
"cron" : [
"0 0/2 * ? * MON-FRI",
"0 1-59/2 * ? * SAT-SUN"
]
}
}
...
}
cron式を検証するためにcronevalを使用
Elasticsearchは、$ES_HOME/bin
ディレクトリにある elasticsearch-croneval
コマンドラインツールを提供しており、cron式が有効であり、期待される結果を生成するかどうかを確認できます。
cron式を検証するには、elasticsearch-croneval
にパラメータとして渡します:
Bash
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
スケジュールを設定するには、間隔を表す文字列値を指定します。時間単位(s
、m
、h
、d
、または w
)を省略すると、デフォルトは秒になります。
たとえば、次の interval
スケジュールは、5分ごとにトリガーされます:
Js
{
"trigger" : {
"schedule" : {
"interval" : "5m"
}
}
}