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