Черга

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

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