Тема
Задачи
Задача - важнейшая часть проекта, определяющая поведение запускаемых элементов.
Описание
Задача, как часть конфигурации проекта, содержит полное описание:
- что запускать
- как запускать
- когда запускать
- как реагировать на изменения состояния
Формат
Описание задачи имеет четко определенный формат.
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 | Задача завершилась с ошибкой. Может быть перезапущена. |
