Spec-Zone.ru › Elasticsearch 7
›Elasticsearch Guide [7.17] ›Watcher ›Триггеры Watcher

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

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

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

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

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

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

Ежечасное расписание Watcher

Триггер schedule, который запускается в определенную минуту каждый час суток. Для использования расписания 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

Триггер schedule, который запускается в определенное время каждый день. Чтобы использовать расписание 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

Триггер 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

Время указывается в формате 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 interval

А 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/7.17/trigger-schedule.html

END_OF_DOCUMENT_MARKER

Spec-Zone.ru

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