Zum Inhalt springen

CLI Referenz

Alle Queuety-Operationen sind standardmäßig über WP-CLI im Namespace wp queuety verfügbar.

Definiere QUEUETY_CLI_COMMAND, bevor Queuety gestartet wird, wenn du denselben Befehlsbaum unter einem anderen Root wie wp themequeue veröffentlichen möchtest.

Für Agenten-Harnesses und andere Virtual-Bash-Integrationen dient diese Seite als Referenz für Menschen und die PHP-Bridge als maschinenlesbarer Vertrag:

  • Queuety::cli_command_map() stellt den serialisierbaren Befehlskatalog bereit
  • Queuety::resolve_cli_command( $path, $args, $assoc_args ) wandelt geparste wp queuety ...-Eingaben in einen normalisierten Ausführungsplan um, der direkte PHP-Aufrufobjekte bevorzugt

State Machines haben in diesem Baum keine Befehle. Sie lassen sich über den PHP-API untersuchen, der unter State Machines beschrieben ist.

Job-Befehle

wp queuety work

Startet einen Worker, der Jobs verarbeitet.

Shell
wp queuety work [--queue=<queue>] [--once] [--workers=<n>]
wp queuety work [--queue=<queue>] [--min-workers=<n>] --max-workers=<n>
Option Beschreibung
--queue=<queue> Queue(s) zur Verarbeitung; durch Kommas getrennt, in Prioritätsreihenfolge (Standard: default)
--once Verarbeitet höchstens einen Job und beendet sich (auch sofort, wenn kein Job beansprucht werden kann)
--workers=<n> Startet N Worker-Prozesse (erfordert die Erweiterungen pcntl und posix, ebenso wie --min-workers und --max-workers)
--min-workers=<n> Mindestanzahl an Workern für einen adaptiven Pool. Erfordert --max-workers
--max-workers=<n> Höchstanzahl an Workern für einen adaptiven Pool
Shell
# 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

# Adaptive worker pool
wp queuety work --queue=providers --min-workers=2 --max-workers=6

Wenn mehrere Queues angegeben sind, versucht der Worker, Jobs in der angegebenen Reihenfolge aus jeder Queue zu beanspruchen. Die erste Queue mit einem verfügbaren Job gewinnt. --workers hält den Pool unverändert. --min-workers und --max-workers aktivieren die adaptive Skalierung für dieselbe Befehlsoberfläche. Bereitstellungsstrategien findest du unter Workers und das Zulassungsmodell für adaptive Pools unter Resource Management.

wp queuety flush

Verarbeitet alle ausstehenden Jobs und beendet sich.

Shell
wp queuety flush [--queue=<queue>]
Option Beschreibung
--queue=<queue> Queue(s) zum Leeren; durch Kommas getrennt, in Prioritätsreihenfolge (Standard: default)
Shell
# 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

Stellt einen Job über die Kommandozeile ein.

Shell
wp queuety dispatch <handler> [--payload=<json>] [--queue=<queue>] [--priority=<priority>] [--delay=<seconds>]
Option Beschreibung
<handler> Handlername oder -klasse (erforderlich)
--payload=<json> JSON-Payload (Standard: {})
--queue=<queue> Queue-Name (Standard: default)
--priority=<priority> Prioritätsstufe 0–3 (Standard: 0)
--delay=<seconds> Verzögerung in Sekunden (Standard: 0)
Shell
wp queuety dispatch send_email --payload='{"to":"user@example.com"}' --queue=emails

wp queuety status

Zeigt Queue-Statistiken an.

Shell
wp queuety status [--queue=<queue>]
Option Beschreibung
--queue=<queue> Nach Queue-Namen filtern

wp queuety list

Listet Jobs auf.

Shell
wp queuety list [--queue=<queue>] [--status=<status>] [--format=<format>]
Option Beschreibung
--queue=<queue> Nach Queue filtern
--status=<status> Nach Status filtern (pending, processing, completed, failed, buried)
--format=<format> Ausgabeformat: table (Standard), json, csv, yaml

wp queuety inspect

Zeigt alle Details eines Jobs an, einschließlich Payload und Protokollverlauf.

Shell
wp queuety inspect <id>
Option Beschreibung
<id> Job-ID (erforderlich)

wp queuety retry

Versucht einen bestimmten Job erneut.

Shell
wp queuety retry <id>
Option Beschreibung
<id> Job-ID für den erneuten Versuch (erforderlich)

wp queuety retry-buried

Versucht alle vergrabenen Jobs erneut.

Shell
wp queuety retry-buried

wp queuety bury

Vergräbt einen Job manuell.

Shell
wp queuety bury <id>
Option Beschreibung
<id> Job-ID zum Vergraben (erforderlich)

wp queuety delete

Löscht einen Job.

Shell
wp queuety delete <id>
Option Beschreibung
<id> Job-ID zum Löschen (erforderlich)

wp queuety recover

Stellt veraltete Jobs wieder her, die im Status processing feststecken.

Shell
wp queuety recover

wp queuety purge

Löscht abgeschlossene Jobs.

Shell
wp queuety purge [--older-than=<days>]
Option Beschreibung
--older-than=<days> Löscht Jobs, die älter als N Tage sind (Standard: QUEUETY_RETENTION_DAYS)

wp queuety pause

Eine Warteschlange pausieren, damit Worker sie überspringen.

Shell
wp queuety pause <queue>
Option Beschreibung
<queue> Name der zu pausierenden Queue (erforderlich)

wp queuety resume

Eine pausierte Warteschlange fortsetzen.

Shell
wp queuety resume <queue>
Option Beschreibung
<queue> Name der fortzusetzenden Queue (erforderlich)

wp queuety metrics

Zeigt handlerbezogene Metriken an.

Shell
wp queuety metrics [--minutes=<minutes>] [--format=<format>]
Option Beschreibung
--minutes=<minutes> Zeitfenster in Minuten (Standard: 60)
--format=<format> Ausgabeformat: table (Standard), json, csv, yaml

wp queuety discover

Ermittelt Handlerklassen in einem Verzeichnis.

Shell
wp queuety discover <directory> <namespace> [--register]
Option Beschreibung
<directory> Zu durchsuchendes Verzeichnis für Handlerklassen (erforderlich)
<namespace> PSR-4-Namespace-Präfix für das Verzeichnis (erforderlich)
--register Registriert die gefundenen Handler tatsächlich

Workflow-Befehle

wp queuety workflow status

Zeigt Workflow-Status und Fortschritt an.

Shell
wp queuety workflow status <id>
Option Beschreibung
<id> Workflow-ID (erforderlich)

status gibt den aktuellen Schritt, einen optionalen Schrittnamen, Versions-/Hash-Metadaten, den Wartemodus und eine Artefaktübersicht aus. Wenn der Workflow aktuell auf Signale oder Abhängigkeiten wartet, wird außerdem ein WaitInfo-JSON-Blob ausgegeben.

wp queuety workflow list

Listet Workflows auf.

Shell
wp queuety workflow list [--status=<status>] [--format=<format>]
Option Beschreibung
--status=<status> Nach Status filtern: running, completed, failed, paused, waiting_for_signal, waiting_for_workflows, cancelled
--format=<format> Ausgabeformat: table (Standard), json, csv, yaml

Der Befehl gibt höchstens 50 Workflows zurück. Er liest einen Wert für --limit, aber WP-CLI weist das Flag derzeit zurück, da der Befehl es nicht deklariert (#12); verwende Queuety::list_workflows() für einen anderen Grenzwert.

Die Standardtabelle enthält StepName und WaitMode, damit sich blockierte Workflows leichter überblicken lassen.

wp queuety workflow retry

Einen fehlgeschlagenen Workflow ab dem fehlgeschlagenen Schritt erneut versuchen.

Shell
wp queuety workflow retry <id>
Option Beschreibung
<id> Workflow-ID (erforderlich)

wp queuety workflow approve

Sendet ein Genehmigungssignal an einen Workflow.

Shell
wp queuety workflow approve <id> [--data=<json>] [--signal=<name>]
Option Beschreibung
<id> Workflow-ID (erforderlich)
--data=<json> Optionaler JSON-Objekt-Payload
--signal=<name> Überschreibt den Namen des Genehmigungssignals (Standard: approval, passend zu wait_for_approval(); ein Schritt vom Typ wait_for_decision() wartet standardmäßig auf approved, gib dort also --signal=approved an)

wp queuety workflow reject

Sendet ein Ablehnungssignal an einen Workflow.

Shell
wp queuety workflow reject <id> [--data=<json>] [--signal=<name>]
Option Beschreibung
<id> Workflow-ID (erforderlich)
--data=<json> Optionaler JSON-Objekt-Payload
--signal=<name> Überschreibt den Namen des Ablehnungssignals (Standard: rejected)

wp queuety workflow input

Sendet strukturierte Eingaben an einen Workflow.

Shell
wp queuety workflow input <id> [--data=<json>] [--signal=<name>]
Option Beschreibung
<id> Workflow-ID (erforderlich)
--data=<json> Optionaler JSON-Objekt-Payload
--signal=<name> Überschreibt den Namen des Eingabesignals (Standard: input)

wp queuety workflow artifacts

Listet gespeicherte Artefakte für einen Workflow auf.

Shell
wp queuety workflow artifacts <id> [--format=<format>] [--with-content]
Option Beschreibung
<id> Workflow-ID (erforderlich)
--format=<format> Ausgabeformat: table (Standard) oder json
--with-content Artefaktinhalt in die Ausgabe aufnehmen

wp queuety workflow artifact

Zeigt ein gespeichertes Artefakt eines Workflows an.

Shell
wp queuety workflow artifact <id> <key>
Option Beschreibung
<id> Workflow-ID (erforderlich)
<key> Artefaktschlüssel (erforderlich)

wp queuety workflow pause

Pausiert einen laufenden Workflow.

Shell
wp queuety workflow pause <id>
Option Beschreibung
<id> Workflow-ID (erforderlich)

wp queuety workflow resume

Einen pausierten Workflow fortsetzen.

Shell
wp queuety workflow resume <id>
Option Beschreibung
<id> Workflow-ID (erforderlich)

wp queuety workflow cancel

Bricht einen Workflow ab, der sich nicht bereits im Status completed oder cancelled befindet. In einer Transaktion setzt Queuety den Status auf cancelled, vergräbt die ausstehenden und laufenden Jobs des Workflows und protokolliert workflow_cancelled. Anschließend führt es Kompensationen und alle registrierten Bereinigungshandler aus.

Shell
wp queuety workflow cancel <id>
Option Beschreibung
<id> Workflow-ID für den Abbruch (erforderlich)
Shell
wp queuety workflow cancel 42

wp queuety workflow timeline

Zeigt die Ereigniszeitleiste eines Workflows an. Sie enthält alle Schritt-Ereignisse (gestartet, abgeschlossen, fehlgeschlagen) mit Zeitstempeln, Handlern und Laufzeiten.

Shell
wp queuety workflow timeline <id> [--limit=<limit>] [--offset=<offset>] [--format=<format>]
Option Beschreibung
<id> Workflow-ID (erforderlich)
--limit=<limit> Höchstzahl der zurückzugebenden Ereignisse (Standard: 100)
--offset=<offset> Anzahl der zu überspringenden älteren Ereignisse (Standard: 0)
--format=<format> Ausgabeformat: table (Standard), json, csv, yaml
Shell
wp queuety workflow timeline 42

Ausgabespalten: ID, Step, Event, Handler, Duration_ms, Error, Created_at.

wp queuety workflow state-at

Zeigt den öffentlichen Workflow-Status nach Abschluss oder Fortsetzung eines bestimmten Workflow-Schritts an.

Shell
wp queuety workflow state-at <id> <step>
Option Beschreibung
<id> Workflow-ID (erforderlich)
<step> Schrittindex, beginnend bei 0 (erforderlich)
Shell
wp queuety workflow state-at 42 0

Details dazu, was aufgezeichnet wird und wofür es verwendet werden kann, findest du unter Workflow Event Log.

wp queuety workflow rewind

Setzt einen Workflow auf einen früheren Schritt zurück und fährt mit dem darauffolgenden Schritt fort. Der Status wird anhand des Ereignisprotokolls state_after für den angegebenen Schritt wiederhergestellt; der nächste Schritt (<step> + 1) wird in die Queue gestellt. Der angegebene Schritt wird nicht erneut ausgeführt.

Shell
wp queuety workflow rewind <id> <step>
Option Beschreibung
<id> Workflow-ID (erforderlich)
<step> Schrittindex, auf den zurückgesetzt werden soll, beginnend bei 0 (erforderlich)
Shell
wp queuety workflow rewind 42 1

Details findest du unter Time Travel.

wp queuety workflow fork

Erstellt aus einem laufenden Workflow am aktuellen Status eine unabhängige Kopie. Der abgezweigte Workflow erhält eine neue ID und läuft eigenständig weiter.

Shell
wp queuety workflow fork <id>
Option Beschreibung
<id> Workflow-ID für die Abzweigung (erforderlich)
Shell
wp queuety workflow fork 42
# Success: Workflow #42 forked. New workflow ID: 43.

Details findest du unter Forking.

wp queuety workflow export

Exportiert den vollständigen Ausführungsverlauf eines Workflows nach JSON. Enthalten sind der Workflow-Datensatz, Jobs, Workflow-Ereignisse, Protokolleinträge, gespeicherte Signale und Wartevorgänge für Workflow-Abhängigkeiten.

Shell
wp queuety workflow export <id> [--output=<file>]
Option Beschreibung
<id> Workflow-ID (erforderlich)
--output=<file> Dateipfad für die Ausgabe von JSON. Standardmäßig stdout.
Shell
# Print to stdout
wp queuety workflow export 42

# Write to a file
wp queuety workflow export 42 --output=/tmp/workflow-42.json

Details zur Struktur von JSON findest du unter Export and Replay.

wp queuety workflow replay

Spielt einen exportierten Workflow aus einer JSON-Datei erneut ab. Erstellt einen neuen Workflow mit dem exportierten Status, den Metadaten und der historischen Zeitleiste.

Shell
wp queuety workflow replay <file>
Option Beschreibung
<file> Pfad zur exportierten JSON-Datei (erforderlich)
Shell
wp queuety workflow replay /tmp/workflow-42.json
# Success: Workflow replayed. New workflow ID: 85.

Einzelheiten findest du unter Export und Wiedergabe.

Schedule-Befehle

wp queuety schedule list

Listet alle wiederkehrenden Zeitpläne auf.

Shell
wp queuety schedule list [--format=<format>]
Option Beschreibung
--format=<format> Ausgabeformat: table (Standard), json, csv, yaml

wp queuety schedule add

Fügt einen wiederkehrenden Zeitplan hinzu.

Shell
wp queuety schedule add <handler> [--every=<interval>] [--cron=<expression>] [--payload=<json>] [--queue=<queue>]
Option Beschreibung
<handler> Handlername oder -klasse (erforderlich)
--every=<interval> Intervallausdruck (e.g. 1 hour, 30 minutes)
--cron=<expression> Cron-Ausdruck (e.g. 0 3 * * *)
--payload=<json> JSON-Payload (Standard: {})
--queue=<queue> Queue-Name (Standard: default)

Du musst entweder --every oder --cron angeben.

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

wp queuety schedule remove

Entfernt einen Zeitplan anhand des Handlernamens.

Shell
wp queuety schedule remove <handler>
Option Beschreibung
<handler> Zu entfernender Handlername (erforderlich)

wp queuety schedule run

Löst manuell einen Scheduler-Tick aus. Stellt Jobs für alle fälligen Zeitpläne in die Queue.

Shell
wp queuety schedule run

Protokollbefehle

wp queuety log

Fragt Protokolleinträge ab.

Shell
wp queuety log [--job=<id>] [--workflow=<id>] [--handler=<name>] [--event=<event>] [--since=<datetime>] [--limit=<n>] [--format=<format>]
Option Beschreibung
--job=<id> Nach Job-ID filtern
--workflow=<id> Nach Workflow-ID filtern
--handler=<name> Nach Handlernamen filtern
--event=<event> Nach Ereignistyp filtern (started, completed, failed, buried, retried, workflow_started, workflow_completed, workflow_failed, workflow_paused, workflow_resumed, workflow_cancelled, workflow_rewound, workflow_forked, workflow_deadline_exceeded, debug)
--since=<datetime> Einträge ab diesem Datum und dieser Uhrzeit anzeigen
--limit=<n> Höchstzahl der anzuzeigenden Einträge (Standard: 50)
--format=<format> Ausgabeformat: table (Standard), json, csv, yaml

Filter werden nicht kombiniert: Queuety wendet den ersten vorhandenen Filter in der Reihenfolge --job, --workflow, --handler, --event, --since an. --job und --workflow geben alle Einträge in aufsteigender Reihenfolge zurück und ignorieren --limit. --handler und --event geben die neuesten Einträge zuerst zurück. Ohne Filter liest der Befehl die letzten 24 Stunden. Diese Abfrage und --since listen Einträge in aufsteigender Reihenfolge auf, sodass --limit die ältesten Einträge im Zeitfenster beibehält.

Shell
# Logs from the last 24 hours (oldest first)
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"

Protokolleinträge löschen

LogCommand definiert einen Unterbefehl purge (wp queuety log purge --older-than=<days>), aber WP-CLI registriert wp queuety log als einzelnen Befehl. Daher ist der Unterbefehl nicht erreichbar und schlägt mit „Too many positional arguments: purge“ fehl (#11). Lösche alte Protokolleinträge stattdessen über PHP:

Shell
wp eval 'echo Queuety\Queuety::purge_logs( 30 );'

Webhook-Befehle

wp queuety webhook add

Registriert einen Webhook URL für ein Ereignis.

Shell
wp queuety webhook add <event> <url>
Option Beschreibung
<event> Ereignisname: job.completed, job.failed, job.buried oder workflow.failed (erforderlich)
<url> URL für POST-Benachrichtigungen (erforderlich)
Shell
wp queuety webhook add job.buried https://hooks.slack.com/services/...

wp queuety webhook list

Listet alle registrierten Webhooks auf.

Shell
wp queuety webhook list [--format=<format>]
Option Beschreibung
--format=<format> Ausgabeformat: table (Standard), json, csv, yaml

wp queuety webhook remove

Entfernt einen Webhook anhand seiner ID.

Shell
wp queuety webhook remove <id>
Option Beschreibung
<id> Zu entfernende Webhook-ID (erforderlich)