Skip to content

Задачи

Задача - важнейшая часть проекта, определяющая поведение запускаемых элементов.

Описание

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

  • что запускать
  • как запускать
  • когда запускать
  • как реагировать на изменения состояния

Формат

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

json
{
  "id": "%уникальный идентификатор задачи%",
  "options": {
    // опции задачи
  },
  "mode": "%режим запуска%",
  "dependencies": [
    // массив с описанием зависимостей задачи
  ],
  "handlers": [
    // массив с описанием обработчиков состояния задачи
  ],
  "restart": {
    // политика перезапуска задачи
  }
}

TIP

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

Пример

Рассмотрим простой пример:

  • необходимо открыть браузер со страницей https://example.com
  • необходимо открыть текстовый файл /tmp/file.txt в текстовом редакторе

WARNING

Пример приведен для Linux. Для других ОС может потребоваться изменение команд запуска.

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

Текстовый файл можно открыть с помощью команды open, указав путь к файлу.

Проект с этими задачами может выглядеть так:

json
{
  "id": "some-project",
  "tasks": [
    {
      "id": "open-browser",
      "options": {
        "command": "firefox",
        "arguments": ["https://example.com"]
      }
    },
    {
      "id": "open-file",
      "options": {
        "command": "open",
        "arguments": ["/tmp/file.txt"]
      }
    }
  ]
}

Состояние

В процессе функционирования задача переходит из одного состояния в другое:

СостояниеОписание
idleИсходное состояние задачи. Задача еще не запускалась и находится в режиме ожидания.
startingЗадача находится в процессе запуска. Выполняются подготовительные действия перед началом основной работы.
startedЗадача успешно запущена и выполняет свои основные действия.
stoppingЗадача находится в процессе остановки. Выполняется очистка ресурсов и корректное завершение работы.
stoppedЗадача корректно остановлена. Может быть перезапущена.
completedЗадача успешно завершена. Может быть перезапущена.
failedЗадача завершилась с ошибкой. Может быть перезапущена.