What is a job?
A job is a single HTTP request task: DispatchQ stores the request intent, makes the HTTP request to any URL (webhook, API endpoint, internal service, etc.), retries if needed, and stores the final result.Lifecycle
Job fields
Unique job ID (for example
job_...).Lifecycle status:
pending, active, awaiting_approval, completed, failed, cancelled.Target URL for the HTTP request.
HTTP method (
GET|POST|PUT|PATCH|DELETE).JSON payload sent to the target URL.
Optional per-job outbound headers.
Queue name, default
default.Deduplication key for semantic duplicates (24-hour window).
Idempotency key from request header (24-hour window).
Earliest time the job becomes eligible for delivery.
Number of delivery attempts already used.
Maximum delivery attempts before
failed.Populated when the job was created by a schedule.
Optional URL notified on completion/failure.
Allowed actions for current status (
approve, cancel, retry).Delay strings
Usedelay with this format:
30s5m1h1d
^(\d+)(s|m|h|d)$ is invalid.
Actions array
- pending
- awaiting_approval
- failed/cancelled
actions: ["cancel"]Computed fields
Returned for retried pending/active jobs. Computed as
max_attempts - attempts.Seconds until
next_retry_at when a retry is scheduled.