Тема
Зависимости
Зависимость - правило, определяющее условие для отложенного запуска задачи. Зависимости позволяют организовать запуск задач на основе состояния других задач.
Описание
Зависимость, как часть конфигурации задачи, содержит:
- идентификатор задачи, от которой зависит текущая задача
- условие запуска задачи
Условие запуска задачи определяется на основе состояния другой задачи.
Формат
Описание зависимости имеет четко определенный формат.
json
{
"taskId": "%идентификатор задачи, от которой зависит текущая%",
"condition": "%условие запуска%"
}Пример
Вернемся к нашему примеру с браузером и текстовым файлом.
Предположим, что нам нужно открыть текстовый файл только после того, как браузер будет закрыт.
Задача open-file будет иметь зависимость от задачи open-browser, которая должна находиться в состоянии completed.
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"]
},
"dependencies": [
{
"taskId": "open-browser",
"condition": {
"status": "completed"
}
}
]
}
]
}Условие может быть описано в виде строки JavaScript-like логического выражения. Такой вариант подойдет для описания сложных и вариативных условий.
json
{
"taskId": "open-browser",
"condition": "status==='completed'"
}TIP
Подробнее о конфигурации зависимостей см. в справочнике.
Порядок выполнения
По умолчанию Runium запускает задачи в порядке их определения в конфигурации проекта. Если у задачи есть зависимости, ее запуск будет отложен до момента, пока все зависимости не будут выполнены.
Циклические зависимости
Runium автоматически обнаруживает циклические зависимости и предотвращает их выполнение.
