Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Руководство [8.17] ›Watcher ›Триггеры Watcher

Триггер расписания Watcher

Триггеры расписания определяют, когда должно начаться выполнение наблюдения, на основе даты и времени. Все времена указаны в формате UTC.

Watcher использует системные часы для определения текущего времени. Для обеспечения запуска расписаний по расписанию необходимо синхронизировать часы всех узлов кластера с помощью службы времени, такой как NTP.

Учтите, что период ограничения может повлиять на фактическое время выполнения наблюдения. По умолчанию период ограничения составляет пять секунд (5000 мс). Если вы настраиваете расписание с частотой выше периода ограничения, период ограничения переопределяет расписание. Например, если вы задали период ограничения в одну минуту (60000 мс), а расписание — каждые 10 секунд, выполнение наблюдения будет происходить не чаще одного раза в минуту. Дополнительную информацию о регулировании скорости выполнения см. в разделе Подтверждение и регулирование скорости выполнения.

Watcher предоставляет несколько типов триггеров расписания:

  • hourly
  • daily
  • weekly
  • monthly
  • yearly
  • cron
  • interval

Часовое расписание Watcher

Триггер расписания, который запускается в определенную минуту каждый час дня. Для использования расписания hourly, укажите минуту (или минуты), в которые вы хотите, чтобы планировщик начал выполнение наблюдения, с помощью атрибута minute.

Если вы не укажете атрибут minute для расписания hourly, он по умолчанию будет 0, и расписание будет запускаться в час каждый час — 12:00, 13:00, 14:00 и так далее.

Настройка расписания на один раз в час

Для настройки расписания на один раз в час укажите одно время с помощью атрибута minute.

Например, следующее расписание hourly запускается в 30-ю минуту каждого часа — 12:30, 13:30, 14:30, …​:

{
  "trigger" : {
    "schedule" : {
      "hourly" : { "minute" : 30 }
    }
  }
}

Настройка расписания на выполнение несколько раз в час

Для настройки расписания hourly, которое запускается несколько раз в час, укажите массив минут. Например, следующее расписание запускается каждые 15 минут каждый час — 12:00, 12:15, 12:30, 12:45, 1:00, 1:15, …​:

{
  "trigger" : {
    "schedule" : {
      "hourly" : { "minute" : [ 0, 15, 30, 45 ] }
    }
  }
}

Ежедневное расписание Watcher

Триггер расписания, который запускается в определенное время каждый день. Чтобы использовать расписание daily, укажите время суток (или времена), в которые планировщик должен начать выполнение наблюдения, с помощью атрибута at.

Время указывается в формате HH:mm по 24-часовому формату. Вы также можете использовать зарезервированные значения midnight и noon для 00:00 и 12:00, а также указать время с помощью объектов.

Если вы не укажете атрибут at для расписания daily, оно по умолчанию запускается один раз в день в полночь, 00:00.

Настройка ежедневного расписания

Для настройки расписания на один раз в день укажите одно время с помощью атрибута at. Например, следующее расписание daily запускается один раз в день в 17:00:

{
  "trigger" : {
    "schedule" : {
      "daily" : { "at" : "17:00" }
    }
  }
}

Настройка многократного ежедневного расписания

Для настройки расписания daily, которое запускается несколько раз в день, укажите массив времен. Например, следующее расписание daily запускается в 00:00, 12:00 и 17:00 каждый день.

{
  "trigger" : {
    "schedule" : {
      "daily" : { "at" : [ "midnight", "noon", "17:00" ] }
    }
  }
}

Указание времени с помощью объектов

В дополнение к использованию синтаксиса строк HH:mm для указания времени, вы можете указать время как объект, имеющий атрибуты hour и minute.

Например, следующее расписание daily запускается один раз в день в 17:00:

{
  "trigger" : {
    "schedule" : {
      "daily" : {
        "at" : {
          "hour" : 17,
          "minute" : 0
        }
      }
    }
  }
}

Для указания нескольких времен с помощью объектной нотации, укажите несколько часов или минут в виде массива. Например, следующее расписание daily запускается в 00:00, 00:30, 12:00, 12:30, 17:00 и 17:30 каждый день:

{
  "trigger" : {
    "schedule" : {
      "daily" : {
        "at" : {
          "hour" : [ 0, 12, 17 ],
          "minute" : [0, 30]
        }
      }
    }
  }
}

Еженедельное расписание Watcher

Триггер расписания, который запускается в определенный день и время каждую неделю. Чтобы использовать расписание weekly, укажите день и время (или дни и времена), в которые планировщик должен начать выполнение наблюдения, с помощью атрибутов on и at.

Вы можете указать день недели по имени, аббревиатуре или номеру (воскресенье — первый день недели):

  • sunday, monday, tuesday, wednesday, thursday, friday и saturday
  • sun, mon, tue, wed, thu, fri и sat
  • 1, 2, 3, 4, 5, 6 и 7

Время указывается в формате HH:mm по 24-часовому формату. Вы также можете использовать зарезервированные значения midnight и noon для 00:00 и 12:00.

Настройка еженедельного расписания

Для настройки расписания на один раз в неделю укажите день с помощью атрибута on и время с помощью атрибута at. Например, следующее расписание weekly запускается один раз в неделю в пятницу в 17:00:

{
  "trigger" : {
    "schedule" : {
      "weekly" : { "on" : "friday", "at" : "17:00" }
    }
  }
}

Вы также можете указать день и время с помощью атрибутов day и time, они взаимозаменяемы с on и at.

Настройка многократного еженедельного расписания

Для настройки расписания weekly, которое запускается несколько раз в неделю, вы можете указать массив значений дня и времени. Например, следующее расписание weekly запускается каждую вторник в 12:00 и каждую пятницу в 17:00:

{
  "trigger" : {
    "schedule" : {
      "weekly" : [
        { "on" : "tuesday", "at" : "noon" },
        { "on" : "friday", "at" : "17:00" }
      ]
    }
  }
}

В качестве альтернативы вы можете указать дни и времена в объекте, который имеет атрибуты on и minute, содержащие массив значений. Например, следующее расписание weekly запускается каждую вторник и пятницу в 12:00 и 17:00:

{
  "trigger" : {
    "schedule" : {
      "weekly" : {
        "on" : [ "tuesday", "friday" ],
        "at" : [ "noon", "17:00" ]
      }
    }
  }
}

Ежемесячный график Watcher

А schedule, который запускается в определенный день и время каждый месяц. Чтобы использовать график monthly, вы указываете день месяца и время (или дни и время), когда вы хотите, чтобы планировщик начал выполнение наблюдения с атрибутами on и at.

Вы указываете день месяца как числовое значение между 1 и 31 (включительно). Время указывается в формате HH:mm по 24-часовому формату. Вы также можете использовать зарезервированные значения midnight и noon для 00:00 и 12:00.

Настройка ежемесячного графика

Чтобы настроить график на один раз в месяц, вы указываете один день и время с атрибутами on и at. Например, следующий график monthly запускается 10-го числа каждого месяца в полдень:

{
  "trigger" : {
    "schedule" : {
      "monthly" : { "on" : 10, "at" : "noon" }
    }
  }
}

Вы также можете указать день и время с помощью атрибутов day и time, они взаимозаменяемы с on и at.

Настройка графика, запускающегося несколько раз в месяц

Чтобы настроить график monthly, который запускается несколько раз в месяц, вы можете указать массив значений дня и времени. Например, следующий график monthly запускается в 12:00 пополудни 10-го числа каждого месяца и в 17:00 20-го числа каждого месяца:

{
  "trigger" : {
    "schedule" : {
      "monthly" : [
        { "on" : 10, "at" : "noon" },
        { "on" : 20, "at" : "17:00" }
      ]
    }
  }
}

В качестве альтернативы, вы можете указать дни и время в объекте, имеющем атрибуты on и at, которые содержат массив значений. Например, следующий график monthly запускается в 00:00 и 12:00 10-го и 20-го числа каждого месяца.

{
  "trigger" : {
    "schedule" : {
      "monthly" : {
        "on" : [ 10, 20 ],
        "at" : [ "midnight", "noon" ]
      }
    }
  }
}

Ежегодный график Watcher

А 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 (включительно). Время указывается в формате HH:mm по 24-часовому формату. Вы также можете использовать зарезервированные значения midnight и noon для 00:00 и 12:00.

Настройка ежегодного графика

Чтобы настроить график на один раз в год, вы указываете месяц с помощью атрибута in, день с помощью атрибута on, а время с помощью атрибута at. Например, следующий график yearly запускается один раз в год в полдень 10 января:

{
  "trigger" : {
    "schedule" : {
      "yearly" : { "in" : "january", "on" : 10, "at" : "noon" }
    }
  }
}

Вы также можете указать месяц, день и время с помощью атрибутов month, day и time, они взаимозаменяемы с in, on и at.

Настройка графика, запускающегося несколько раз в год

Чтобы настроить график yearly, который запускается несколько раз в год, вы можете указать массив значений месяца, дня и времени. Например, следующий график yearly запускается дважды в год: в полдень 10 января и в 17:00 20 июля.

{
  "trigger" : {
    "schedule" : {
      "yearly" : [
        { "in" : "january", "on" : 10, "at" : "noon" },
        { "in" : "july", "on" : 20, "at" : "17:00" }
      ]
    }
  }
}

В качестве альтернативы, вы можете указать месяцы, дни и время в объекте, имеющем атрибуты in, on и minute, которые содержат массив значений. Например, следующий график yearly запускается в 00:00 и 12:00 10 января, 20 января, 10 декабря и 20 декабря.

{
  "trigger" : {
    "schedule" : {
      "yearly" : {
        "in" : [ "jan", "dec" ],
        "on" : [ 10, 20 ],
        "at" : [ "midnight", "noon" ]
      }
    }
  }
}

График Watcher cron

Определяет schedule с помощью выражения cron, которое определяет, когда выполнить наблюдение.

Хотя выражения cron мощные, регулярный график легче настроить с помощью других типов графиков. Если вам необходимо использовать cron-график, убедитесь, что вы проверили его с помощью elasticsearch-croneval.

Настройка графика cron с одним временем

Чтобы настроить график cron, вы просто указываете выражение cron в качестве строкового значения. Например, следующий фрагмент настраивает график cron, который запускается каждый день в полдень:

{
  ...
  "trigger" : {
    "schedule" : {
      "cron" : "0 0 12 * * ?"
    }
  }
  ...
}

Настройка графика cron с несколькими временами

Чтобы настроить график cron, который запускается несколько раз, вы можете указать массив выражений cron. Например, следующий график cron запускается каждую четную минуту в будние дни и каждую нечетную минуту в выходные:

{
  ...
  "trigger" : {
    "schedule" : {
      "cron" : [
        "0 0/2 * ? * MON-FRI",
        "0 1-59/2 * ? * SAT-SUN"
      ]
    }
  }
  ...
}

Использование croneval для проверки выражений cron

Elasticsearch предоставляет инструмент командной строки elasticsearch-croneval в каталоге $ES_HOME/bin, который вы можете использовать для проверки правильности ваших выражений cron и получения ожидаемых результатов.

Чтобы проверить выражение cron, передайте его в качестве параметра к elasticsearch-croneval:

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

График Watcher интервала

А 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 запускается каждые пять минут:

{
  "trigger" : {
    "schedule" : {
      "interval" : "5m"
    }
  }
}

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/trigger-schedule.html

END_OF_DOCUMENT_MARKER

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API