Wait

logic_wait · logic · Logica & Flow · Disponibile · v1.1.0

Descrizione

Operatore enterprise di sospensione del workflow flessibile che combina i pattern timer-based (delay temporizzato) e signal-based (wait-for-webhook-callback) in un'unica primitiva configurable. Sospende l'esecuzione fino a uno dei tre scenari: timer scaduto (mode=timer, configurazione durationMs identica a logic_delay), arrivo di una callback HTTP esterna (mode=webhook, configurazione signalName + authToken, identico semantically a logic_wait_signal), oppure la combinazione "either" early-exit (mode=either — riprende al PRIMO dei due eventi che accade, pattern hybrid timeout + signal critical per use case real-world dove "se l'utente non conferma entro 24h prendiamo decisione automatica"). Il workflow è completamente suspended durante l'attesa: zero consumo CPU/RAM, lo state è persistito in checkpoint del SQLite runtime, sopravvive a restart container per deploy o crash, scheduler centrale del portal riprende il workflow quando il timer scade o il webhook arriva. Cap di sicurezza configurable maxTimeoutMs default 30 giorni — pattern di safety per evitare workflow zombie che restano paused per sempre per signal mai arrivato. Mode timer — simple, deterministic, prevedibile: durationMs (range 1ms-30giorni), resume al expire esatto, output con ms effettivi attesi (può differire micro-secondi da nominal per scheduler precision); Mode webhook — signal_name come endpoint POST /signals/<name> con auth_token validation, payload JSON del POST disponibile nel resume output; Mode either — early-exit racing: timer + webhook armati simultanei, primo che firma fa resume + log di chi ha vinto, pattern critico per "approval con timeout business default" (esempio canonico: wait_for_approval_or_24h). Output al resume: { resumedBy ("timer" | "webhook"), durationMs effettivo, signalPayload? (se webhook), timeoutReached (bool se timer ha vinto in mode either) }. Use case: aspettare conferma utente prima di proseguire (mode=webhook → invia link conferma + aspetta click), pausa anti-rate-limit prima di chiamata API successiva (mode=timer 1s tra 100 chiamate batch), wait per propagazione DNS/cache CDN (mode=timer 30s prima di check post-invalidate), attesa di esecuzione async esterna con callback notify (mode=webhook per "il processing OCR di Vision Extract è completed e invia signal"), pattern approval con default (mode=either con webhook + 24h timer per "se il manager non risponde entro 24h auto-approva" in workflow finance enterprise).

⚙️ Parametri di configurazione

Campi mostrati nell’editor quando si configura il nodo. Generati direttamente dal NodeDefconfigFields.

CampoTipoRequiredDefaultDescrizione
mode
Mode
enum
timerwebhookeither
sitimertimer = riprende dopo `durationMs` (default 60s). webhook = riprende quando arriva POST su `/api/v1/workflows/:wfId/wait-resume/:runId` (max attesa `maxWaitMs`). either = il primo dei due che scade vince (early-exit).
durationMs
Durata (ms) — per mode timer/either
numberno60000Tempo di attesa in millisecondi. 1000=1s, 60000=1min, 3600000=1h, 86400000=24h. Hard cap engine: 7 giorni (604800000ms). Per attese > 7 giorni usa `trigger_cron` invece.
maxWaitMs
Max attesa (ms) — per mode webhook/either
numberno3600000Timeout assoluto del webhook. Se nessuna callback arriva entro questo tempo il workflow riprende comunque (status=timeout). Default 1h. Protezione anti-leak: se l'utente non clicca mai il link conferma, il workflow non resta sospeso per sempre.

💡 Esempio configurazione

Snippet JSON del nodo come compare nel workflow. I valori sono derivati daidefaultValue e dai parametri required.

{
  "id": "node-logic_wait-1",
  "defId": "logic_wait",
  "label": "Wait",
  "config": {
    "mode": "timer",
    "durationMs": 60000,
    "maxWaitMs": 3600000
  }
}

🔗 Nodi correlati nella stessa categoria

Pronto a usare Wait?

Disponibile da subito in tutti i piani FlowForge. Provalo gratis senza carta di credito.

Inizia gratisSfoglia tutti i nodi