Чому виконання чекає, що воно утримує і як продовжується

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

4 хв читання

Виконання не завжди проходить від входу до кінця за один раз. На деяких вузлах воно зупиняється, чекає і потім продовжується саме. Ця сторінка — про таку паузу з боку флоу: що зупиняє виконання, що воно зберігає і що утримує, поки чекає.

Що змушує виконання чекати

Де воно зупиняєтьсяНа що воно чекає
ЧергаНа затримку, на яку налаштовано вузол
Потрібне схваленняНа рішення людини чи ключа або на кінець часу на рішення
AI-модель, пул якого налаштовано чекатиНа підключення пулу, яке може прийняти виклик, — після ліміту запитів або коли в жодного не лишилося ємності
AI-модель, провайдер якого виконує виклик у фоніНа відповідь провайдера
AI-модель, політика перевитрати якого просить погодженняНа рішення щодо погодження

Запит, надісланий в асинхронному режимі, теж чекає — ще до того, як виконається будь-який вузол: він перебуває в статусі queued, доки обробник не почне його на вхідному вузлі.

Чим відповідають на запит

На запит, виконання якого зупинилося, одразу приходить 202 зі статусом waiting. Відповідь каже в waiting_on, на якому вузлі стоїть виконання і на що чекає, а retry_after_seconds — коли знову прочитати статус. Асинхронні запуски й очікування перелічує кожну причину waiting_on і показує, як застосунок чекає на результат.

Після паузи на запит уже ніщо не відповідає: на нього відповіли. Що флоу робить далі — його відповідь, відмова, помилка — читається зі статусу виконання або приходить із вебхуком execution.finished.

Що зберігається і що утримується

Slen зберігає те, що виконання встигло зібрати: вхід, контекст і виходи пройдених вузлів — у запечатаному вигляді, доки виконання не продовжиться. Контекст виконання та шляхи каже, що може прочитати вузол після паузи.

ПаузаЩо утримується, поки вона триває
Черга, Потрібне схваленняНічого. Модель після вузла резервується після паузи, за бюджетами, якими вони будуть тоді
Пул, який чекає на підключенняНічого. Холд виклику, який не вдалося зробити, повертається; виклик бере новий, коли його пробують знову
Погодження перевитратиНічого. Холд повертається, коли запитується погодження
Виклик, який провайдер виконує у фоніХолд виклику — за замовчуванням 30 хвилин від початку виклику. Після цього холд повертається, хоча Slen і далі питає відповідь, а пізня відповідь списується пізно

Як працює резервування бюджету каже, що робить холд і як він закінчується.

Як виконання продовжується

Виконання продовжується на тому вузлі, на якому зупинилося.

  • Черга пропускає його через Типовий.

  • Потрібне схвалення виходить через Схвалено або Відхилено.

  • AI-модель пробує виклик знову або читає відповідь провайдера.

Виконання, що чекають, забираються раз на хвилину, тому виконання продовжується в межах хвилини після того, як настав його час або вирішено його погодження. Про виклик, який провайдер виконує у фоні, питають кожні кілька секунд — за замовчуванням не рідше ніж раз на 30.

Скільки виконання може чекати

  • За замовчуванням виконання може чекати загалом 72 години, рахуючи від його першої паузи, а надіслане в асинхронному режимі — від моменту, коли його було прийнято. Після цього воно закінчується статусом failed з parked_expired. Виклик, який провайдер ще виконує, коли час вийшов, закінчується так само.

  • Затримка вузла Черга і час на рішення вузла Потрібне схвалення не можуть бути більшими за 71 годину за замовчуванням: більше відхиляється під час публікації флоу.

  • Пул чекає на підключення за замовчуванням не більше трьох разів. Після цього виклик завершується помилкою так само, як без очікування.

  • Погодження, щодо якого ніхто не вирішив вчасно, вважається відмовою.

Де пауза стояти не може

До Черга і Потрібне схвалення не можна дійти від Резерв бюджету раніше, ніж до вузла AI-модель, для якого він резервує, бо виконання, що чекає, не тримає резерву. Такий флоу не публікується, з кодом park_inside_finance_chain. Якими зв’язками йде перевірка, каже стаття Фінансовий ланцюжок.

Стежити за виконаннями, що чекають

Виконання, що чекає, має статус Очікує на вкладці Виконання свого флоу. Режим Наживо на полотні флоу показує, на якому вузлі стоїть кожне і на що воно чекає, — Розбір виконання. Погодження чекають на сторінці Погодження: Погодження каже, як щодо них вирішувати.

Що читати далі