elasticsearch/docs/reference/watcher/trigger/schedule/monthly.asciidoc
Luke Whiting 1d4c8d85f6
(#34659) - Add Timezone Configuration to Watcher (#117033)
* Add timezone support to Cron objects

* Add timezone support to CronnableSchedule

* XContent change to support parsing and display of TimeZone fields on schedules

* Case insensitive timezone parsing

* Doc changes

* YAML REST tests

* Equals, toString and HashCode now include timezone

* Additional random testing for DST transitions

* Migrate Cron class to use wrapped LocalDateTime

The algorithm depends on some quirks of calendar but LocalDateTime
correctly ignores DST during calculations so this uses a LocalDateTime
with a wrapper to emulate some of Calendar's behaviours that the Cron
algorithm depends on

* Additional documentation to explain discontinuity event behaviour

* Remove redundant conversions from ZoneId to TimeZone following move to LocalDateTime

* Add documentation warning that manual clock changes will cause unpredictable watch execution

* Update docs/reference/watcher/trigger/schedule.asciidoc

Co-authored-by: Lee Hinman <dakrone@users.noreply.github.com>

---------

Co-authored-by: Lee Hinman <dakrone@users.noreply.github.com>
2024-11-25 09:51:11 +00:00

99 lines
2.9 KiB
Text

[role="xpack"]
[[schedule-monthly]]
==== {watcher} monthly schedule
++++
<titleabbrev>Monthly schedule</titleabbrev>
++++
A <<trigger-schedule,`schedule`>> that triggers at a specific day and time
every month. To use the `monthly` schedule, you specify the day of the month and
time (or days and times) when you want the scheduler to start the watch execution
with the `on` and `at` attributes.
You specify the day of month as a numeric value between `1` and `31` (inclusive).
Times are specified in the form `HH:mm` on a 24-hour clock. You can also use the
reserved values `midnight` and `noon` for `00:00` and `12:00`.
===== Configuring a monthly schedule
To configure a once a month schedule, you specify a single day and time with the
`on` and `at` attributes. For example, the following `monthly` schedule triggers
on the 10th of each month at noon:
[source,js]
--------------------------------------------------
{
"trigger" : {
"schedule" : {
"monthly" : { "on" : 10, "at" : "noon" }
}
}
}
--------------------------------------------------
// NOTCONSOLE
NOTE: You can also specify the day and time with the `day` and `time` attributes,
they are interchangeable with `on` and `at`.
===== Configuring a multiple times monthly schedule
To configure a `monthly` schedule that triggers multiple times a month, you can
specify an array of day and time values. For example, the following `monthly`
schedule triggers at 12:00 PM on the 10th of each month and at 5:00 PM on the
20th of each month:
[source,js]
--------------------------------------------------
{
"trigger" : {
"schedule" : {
"monthly" : [
{ "on" : 10, "at" : "noon" },
{ "on" : 20, "at" : "17:00" }
]
}
}
}
--------------------------------------------------
// NOTCONSOLE
Alternatively, you can specify days and times in an object that has `on` and `at`
attributes that contain an array of values. For example, the following `monthly`
schedule triggers at 12:00 AM and 12:00 PM on the 10th and 20th of each month.
[source,js]
--------------------------------------------------
{
"trigger" : {
"schedule" : {
"monthly" : {
"on" : [ 10, 20 ],
"at" : [ "midnight", "noon" ]
}
}
}
}
--------------------------------------------------
// NOTCONSOLE
==== Configuring time zones for monthly schedules
By default, monthly schedules are evaluated in the UTC time zone. To use a different
time zone, you can specify the `timezone` parameter in the schedule. For example,
the following `monthly` schedule triggers at 6:00 AM and 6:00 PM on the 15th of each month in
the `Asia/Tokyo` time zone:
[source,js]
--------------------------------------------------
{
"trigger" : {
"schedule" : {
"timezone" : "Asia/Tokyo",
"monthly" : {
"on" : [ 15 ],
"at" : [ 6:00, 18:00 ]
}
}
}
}
--------------------------------------------------
// NOTCONSOLE