Skip to content

Триггеры

Триггер - правило для автоматического выполнения действий в ответ на события.

Описание

Триггер, как часть конфигурации проекта, содержит описание:

  • какое действие выполнить
  • что инициирует выполнение

Срабатывание триггера может быть инициировано таймером или внутренним событием проекта.

Формат

Описание триггера имеет четко определенный формат.

json
{
  "id": "%уникальный идентификатор триггера%",
  "type": "%тип триггера%",
  "action": "%действие%",
  "options": "%опции%",
  "disabled": "%флаг отключения%"
}

Поддерживаемые типы триггеров

ТипОписание
timeoutВыполняет действие через заданное время.
intervalВыполняет действие через заданный интервал.
eventВыполняет действие при наступлении внутреннего события.

TIP

Подробнее о конфигурации триггеров см. в справочнике.

Пример

Вернемся к нашему примеру с браузером и текстовым файлом.

Предположим, что нам нужно открыть текстовый файл через 5 секунд после запуска проекта.

В этом случае мы можем использовать триггер типа timeout, который будет запускать задачу open-file.

WARNING

Т.к. задача open-file должна быть запущена не сразу, а с помощью триггера, необходимо предотвратить ее самостоятельный запуск. Для этого задаем значение свойства mode в deferred.

json
{
  "id": "some-project",
  "tasks": [
    {
      "id": "open-browser",
      "options": {
        "command": "firefox",
        "arguments": ["https://example.com"]
      }
    },
    {
      "id": "open-file",
      "mode": "deferred",
      "options": {
        "command": "open",
        "arguments": ["/tmp/file.txt"]
      }
    }
  ],
  "triggers": [
    {
      "id": "open-file-after-5-seconds",
      "type": "timeout",
      "action": {
        "type": "start-task",
        "options": {
          "taskId": "open-file"
        }
      },
      "options": {
        "timeout": 5000
      }
    }
  ]
}