Skip to content

Обработчики

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

Описание

Обработчик, как часть конфигурации задачи, содержит:

  • условие вызова
  • действие

Условие вызова определяется на основе состояния задачи.

Формат

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

json
{
  "condition": "%условие вызова%",
  "action": "%действие%"
}

Пример

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

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

Задача open-browser будет иметь обработчик, который должен быть вызван при переходе этой задачи в состояние completed. Обработчик будет запускать задачу open-file.

WARNING

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

json
{
  "id": "some-project",
  "tasks": [
    {
      "id": "open-browser",
      "options": {
        "command": "firefox",
        "arguments": ["https://example.com"]
      },
      "handlers": [
        {
          "condition": {
            "status": "completed"
          },
          "action": {
            "type": "start-task",
            "options": {
              "taskId": "open-file"
            }
          }
        }
      ]
    },
    {
      "id": "open-file",
      "mode": "deferred",
      "options": {
        "command": "open",
        "arguments": ["/tmp/file.txt"]
      }
    }
  ]
}

TIP

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

Множественные обработчики

Каждая задача может иметь несколько обработчиков, с различными условиями вызова.