Очередь

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

4 мин чтения

Очередь задерживает флоу. Выполнение, дошедшее до узла, останавливается, ждёт заданное вами число секунд и затем идёт дальше по тому же пути.

Узел
Очередь
Тип
queue
Категория
Выход
Порты
  • По умолчанию default подключение обязательно
Завершает путь
Нет

Что делает узел

Когда выполнение доходит до узла, оно останавливается на нём, и его статус становится waiting. Slen сохраняет то, что выполнение успело собрать. Запрос, который начал выполнение, сразу получает ответ 202, и в ответе названы узел и момент, когда ожидание закончится.

202 Accepted
{
  "data": {
    "execution_id": "74438200973594800",
    "status": "waiting",
    "operation": "summarize_report",
    "output": null,
    "error": null,
    "error_code": null,
    "error_message": null,
    "cost": { "estimated": null, "actual": null },
    "cache": { "hit": false, "cached_at": null },
    "replayed": false,
    "waiting_on": {
      "node_key": "wait",
      "type": "queue_node",
      "resume_at": "2026-10-02T09:35:00+00:00"
    },
    "trace_url": "/v1/executions/74438200973594800",
    "retry_after_seconds": 300
  }
}

Выполнение, запущенное в асинхронном режиме, получило ответ раньше — со статусом queued. Его статус становится waiting, когда оно доходит до узла.

Когда этот момент наступает, выполнение продолжается с того же узла. Оно выходит через порт По умолчанию и переходит к следующему узлу. Ожидающие выполнения подбираются раз в минуту, поэтому ожидание никогда не бывает короче задержки и обычно заканчивается в течение минуты после неё.

Узел ждёт один раз. Это задержка, а не цикл.

Пока выполнение ждёт, ничего не резервируется. AI-модель резервирует деньги, когда выполнение доходит до этого узла. Для модели, которая стоит после очереди, резерв берётся и вызов делается после задержки — по бюджетам, какими они будут в тот момент.

Когда использовать

Используйте узел, чтобы отложить трату. Выполнение ждёт, а модель вызывается после задержки.

  • Вызывающая сторона должна быть готова к ответу, который ещё не окончателен. Как приложение ждёт результата, показано в статье Асинхронные запуски и ожидание.

  • Узел не выстраивает выполнения по порядку и не ограничивает, сколько их идёт одновременно. Каждое выполнение ждёт свою задержку.

  • Чтобы дождаться решения человека, используйте узел Требуется одобрение.

На вкладке Выполнения этого флоу выполнение, которое стоит на узле, показано как Ожидает. Статья Разбор выполнения показывает, как следить за ждущими выполнениями на холсте флоу.

Настройки

НастройкаДля чего она
delay_secondsСколько выполнение ждёт на узле, в целых секундах. Не меньше 1. Узел без значения ждёт 60 секунд.

В конструкторе эта настройка — поле Ждать (секунды). У нового узла в нём стоит 60.

Самая длинная задержка по умолчанию — 255 600 секунд, то есть 71 час. Более длинная задержка отклоняется при публикации флоу.

Порты

У узла один порт, По умолчанию, и он обязательный. Флоу, в котором этот порт никуда не ведёт, не публикуется. Выполнение выходит через него, когда ожидание закончилось.

Что такое обязательный порт, сказано в статье Порты и ветвление.

Выход

После ожидания узел оставляет одно поле для следующих узлов.

JSON
{ "queued_for_seconds": 300 }

queued_for_seconds — это задержка, заданная узлу, а не прошедшее время. Следующий узел читает его по пути nodes.<key>.output.queued_for_seconds, где <key> — ключ этого узла во флоу.

Ошибки

Своих ошибок узел не выдаёт. Его настройка проверяется при проверке флоу и при его публикации.

В API запись issues называет такую проверку в params.detail; её code — invalid_node_config.

ПроверкаСообщение в конструкторе
queue_invalid_delayЗадержка «{node}» должна быть целым числом секунд, не меньше 1.
queue_delay_too_longЗадержка «{node}» дольше, чем хранится ожидающее выполнение: не больше {max} секунд.

Узел не может стоять после узла Резерв бюджета и перед узлом AI-модель, для которого берётся резерв, потому что у ожидающего выполнения нет резерва. Такой флоу не публикуется.

По умолчанию выполнение может ждать в общей сложности 72 часа. Время считается от его первой паузы, а для выполнения, отправленного в асинхронном режиме, — от момента, когда оно было принято. После этого выполнение закрывается как failed, и его статус говорит почему.

JSON
{
  "status": "failed",
  "error_code": "parked_expired",
  "error_message": "The execution waited longer than a parked execution may and was closed"
}

Ошибка, которая случилась после ожидания, не приходит в ответ на запрос, начавший выполнение, потому что на этот запрос уже ответили. Прочитайте статус выполнения или подпишитесь на вебхук execution.finished.

Пример

  • Запрос — По умолчанию → Очередь
  • Очередь — По умолчанию → AI-модель
  • AI-модель — Успех → Вернуть ответ

Запрос получает ответ waiting, как только выполнение доходит до узла Очередь. После задержки AI-модель резервирует деньги и вызывает модель, а Вернуть ответ завершает выполнение как completed. Приложение читает результат по идентификатору выполнения.

Собрано из openapi b070e1f, sdk contract 5cc7055, php ae4a53b, node 84bc62d