Queuety

CLI Reference

All Queuety operations are available through WP-CLI under the wp queuety namespace.

Job commands

wp queuety work

Start a worker that processes jobs.

wp queuety work [--queue=<queue>] [--once] [--workers=<n>]
OptionDescription
--queue=<queue>Queue(s) to process, comma-separated for priority ordering (default: default)
--onceProcess one batch and exit
--workers=<n>Fork N worker processes (requires pcntl extension)
# Single worker on default queue
wp queuety work

# Process a specific queue
wp queuety work --queue=emails

# Process multiple queues in priority order
wp queuety work --queue=critical,default,low

# One-shot mode
wp queuety work --once

# Multi-worker mode
wp queuety work --workers=4

When multiple queues are specified, the worker tries to claim from each queue in the listed order. The first queue with an available job wins. See Workers for deployment strategies.

wp queuety flush

Process all pending jobs and exit.

wp queuety flush [--queue=<queue>]
OptionDescription
--queue=<queue>Queue(s) to flush, comma-separated for priority ordering (default: default)
# Flush a single queue
wp queuety flush --queue=emails

# Flush multiple queues in priority order
wp queuety flush --queue=critical,default,low

wp queuety dispatch

Dispatch a job from the command line.

wp queuety dispatch <handler> [--payload=<json>] [--queue=<queue>] [--priority=<priority>] [--delay=<seconds>]
OptionDescription
<handler>Handler name or class (required)
--payload=<json>JSON payload (default: {})
--queue=<queue>Queue name (default: default)
--priority=<priority>Priority level 0-3 (default: 0)
--delay=<seconds>Delay in seconds (default: 0)
wp queuety dispatch send_email --payload='{"to":"user@example.com"}' --queue=emails

wp queuety status

Show queue statistics.

wp queuety status [--queue=<queue>]
OptionDescription
--queue=<queue>Filter by queue name

wp queuety list

List jobs.

wp queuety list [--queue=<queue>] [--status=<status>] [--format=<format>]
OptionDescription
--queue=<queue>Filter by queue
--status=<status>Filter by status (pending, processing, completed, failed, buried)
--format=<format>Output format: table (default), json, csv, yaml

wp queuety inspect

Show full details of a job, including payload and log history.

wp queuety inspect <id>
OptionDescription
<id>Job ID (required)

wp queuety retry

Retry a specific job.

wp queuety retry <id>
OptionDescription
<id>Job ID to retry (required)

wp queuety retry-buried

Retry all buried jobs.

wp queuety retry-buried

wp queuety bury

Bury a job manually.

wp queuety bury <id>
OptionDescription
<id>Job ID to bury (required)

wp queuety delete

Delete a job.

wp queuety delete <id>
OptionDescription
<id>Job ID to delete (required)

wp queuety recover

Recover stale jobs that are stuck in processing status.

wp queuety recover

wp queuety purge

Purge completed jobs.

wp queuety purge [--older-than=<days>]
OptionDescription
--older-than=<days>Delete jobs older than N days (default: QUEUETY_RETENTION_DAYS)

wp queuety pause

Pause a queue so workers skip it.

wp queuety pause <queue>
OptionDescription
<queue>Queue name to pause (required)

wp queuety resume

Resume a paused queue.

wp queuety resume <queue>
OptionDescription
<queue>Queue name to resume (required)

wp queuety metrics

Show per-handler metrics.

wp queuety metrics [--minutes=<minutes>] [--format=<format>]
OptionDescription
--minutes=<minutes>Time window in minutes (default: 60)
--format=<format>Output format: table (default), json, csv, yaml

wp queuety discover

Discover handler classes in a directory.

wp queuety discover <directory> <namespace> [--register]
OptionDescription
<directory>Directory to scan for handler classes (required)
<namespace>PSR-4 namespace prefix for the directory (required)
--registerActually register discovered handlers

Workflow commands

wp queuety workflow status

Show workflow status and progress.

wp queuety workflow status <id>
OptionDescription
<id>Workflow ID (required)

wp queuety workflow list

List workflows.

wp queuety workflow list [--status=<status>] [--format=<format>]
OptionDescription
--status=<status>Filter by status: running, completed, failed, paused, cancelled
--format=<format>Output format: table (default), json, csv, yaml

wp queuety workflow retry

Retry a failed workflow from its failed step.

wp queuety workflow retry <id>
OptionDescription
<id>Workflow ID (required)

wp queuety workflow pause

Pause a running workflow.

wp queuety workflow pause <id>
OptionDescription
<id>Workflow ID (required)

wp queuety workflow resume

Resume a paused workflow.

wp queuety workflow resume <id>
OptionDescription
<id>Workflow ID (required)

wp queuety workflow cancel

Cancel a running or paused workflow. Runs any registered cleanup handler, sets the status to cancelled, and buries pending jobs.

wp queuety workflow cancel <id>
OptionDescription
<id>Workflow ID to cancel (required)
wp queuety workflow cancel 42

wp queuety workflow timeline

Show the event timeline for a workflow. Displays all step events (started, completed, failed) with timestamps, handlers, and durations.

wp queuety workflow timeline <id> [--format=<format>]
OptionDescription
<id>Workflow ID (required)
--format=<format>Output format: table (default), json, csv, yaml
wp queuety workflow timeline 42

Output columns: ID, Step, Event, Handler, Duration_ms, Error, Created_at.

wp queuety workflow state-at

Show the state snapshot at a specific workflow step. Displays the full workflow state as it was after the given step completed.

wp queuety workflow state-at <id> <step>
OptionDescription
<id>Workflow ID (required)
<step>Step index, 0-based (required)
wp queuety workflow state-at 42 0

See Workflow Event Log for details on what gets recorded and use cases.

Schedule commands

wp queuety schedule list

List all recurring schedules.

wp queuety schedule list [--format=<format>]
OptionDescription
--format=<format>Output format: table (default), json, csv, yaml

wp queuety schedule add

Add a recurring schedule.

wp queuety schedule add <handler> [--every=<interval>] [--cron=<expression>] [--payload=<json>] [--queue=<queue>]
OptionDescription
<handler>Handler name or class (required)
--every=<interval>Interval expression (e.g. 1 hour, 30 minutes)
--cron=<expression>Cron expression (e.g. 0 3 * * *)
--payload=<json>JSON payload (default: {})
--queue=<queue>Queue name (default: default)

You must specify either --every or --cron.

wp queuety schedule add cleanup_handler --every="1 hour"
wp queuety schedule add nightly_report --cron="0 3 * * *" --queue=reports

wp queuety schedule remove

Remove a schedule by handler name.

wp queuety schedule remove <handler>
OptionDescription
<handler>Handler name to remove (required)

wp queuety schedule run

Manually trigger a scheduler tick. Enqueues jobs for all due schedules.

wp queuety schedule run

Log commands

wp queuety log

Query log entries.

wp queuety log [--job=<id>] [--workflow=<id>] [--handler=<name>] [--event=<event>] [--since=<datetime>] [--limit=<n>] [--format=<format>]
OptionDescription
--job=<id>Filter by job ID
--workflow=<id>Filter by workflow ID
--handler=<name>Filter by handler name
--event=<event>Filter by event type (started, completed, failed, buried, retried, workflow_started, workflow_completed, workflow_failed, workflow_paused, workflow_resumed, workflow_cancelled, debug)
--since=<datetime>Show entries since this datetime
--limit=<n>Max entries to show (default: 50)
--format=<format>Output format: table (default), json, csv, yaml
# Recent logs (last 24 hours)
wp queuety log

# Logs for a job
wp queuety log --job=42

# Failed events
wp queuety log --event=failed --limit=100

# Logs since a specific time
wp queuety log --since="2025-03-01 00:00:00"

wp queuety log purge

Purge old log entries.

wp queuety log purge --older-than=<days>
OptionDescription
--older-than=<days>Delete entries older than N days (required)

Webhook commands

wp queuety webhook add

Register a webhook URL for an event.

wp queuety webhook add <event> <url>
OptionDescription
<event>Event name: job.completed, job.failed, job.buried, workflow.completed, workflow.failed (required)
<url>URL to POST notifications to (required)
wp queuety webhook add job.buried https://hooks.slack.com/services/...

wp queuety webhook list

List all registered webhooks.

wp queuety webhook list [--format=<format>]
OptionDescription
--format=<format>Output format: table (default), json, csv, yaml

wp queuety webhook remove

Remove a webhook by ID.

wp queuety webhook remove <id>
OptionDescription
<id>Webhook ID to remove (required)

On this page