Disk queue

Durable job queue on local disk — atomic claim via rename, no Redis. Any Resuma process can enqueue; any process can claim pending jobs.

LIVE

Enqueue + stats

Calls enqueue("docs", "docs_showcase", …) — same disk-backed queue store as production apps.

Layout

.resuma/queue/{name}/
  pending/      ← new jobs
  processing/   ← claimed by one process
  done/         ← graph finished successfully
  failed/       ← start failed or graph failed/cancelled

Enqueue from Rust

use resuma::prelude::*;

let resp = enqueue("default", "summarize", json!({ "text": "..." })).await?;
// resp.message_id, resp.queue

Enqueue from HTTP

POST /_resuma/queue/default
Authorization: Bearer $RESUMA_EXEC_API_KEY
Content-Type: application/json

{ "worker": "summarize", "input": { "text": "..." } }

Stats

GET /_resuma/queue/default/stats
    // { "pending": 2, "processing": 1, "done": 10, "failed": 0 }

Multi-process

Each process runs a background consumer when init_exec() runs (automatic on FlowApp::serve). Claim uses rename(pending → processing) — only one winner per job. Tune poll interval with RESUMA_QUEUE_POLL_MS (default 200).

← Overview · Scheduler →