Warteschlangenverwaltung
Queuety unterstützt mehrere benannte Warteschlangen. Jeder Worker verarbeitet eine Warteschlange oder eine geordnete Liste von Warteschlangen (siehe Worker). Warteschlangen lassen sich unabhängig voneinander pausieren und fortsetzen.
Benannte Warteschlangen
Weise Jobs bestimmten Warteschlangen zu:
use Queuety\Queuety;
Queuety::dispatch( 'send_email', $payload )->on_queue( 'emails' );
Queuety::dispatch( 'process_image', $payload )->on_queue( 'media' );
Queuety::dispatch( 'sync_data', $payload )->on_queue( 'sync' );
Starte Worker für jede Warteschlange:
wp queuety work --queue=emails
wp queuety work --queue=media
wp queuety work --queue=sync
Die Standardwarteschlange heißt default. Wenn du keine Warteschlange angibst, werden Jobs dort eingereiht.
Pausieren und fortsetzen
Pausiere eine Warteschlange, damit Worker keine neuen Jobs mehr übernehmen. Bereits verarbeitete Jobs werden abgeschlossen, aber es werden keine neuen Jobs gestartet.
Queuety::pause( 'emails' );
Queuety::resume( 'emails' );
Prüfe, ob eine Warteschlange pausiert ist:
if ( Queuety::is_paused( 'emails' ) ) {
// Queue is paused
}
Über CLI:
wp queuety pause emails
wp queuety resume emails
Das ist bei Bereitstellungen oder Wartungsfenstern nützlich, wenn du die Verarbeitung vorübergehend anhalten möchtest, ohne den Worker zu beenden.
Warteschlangenstatistiken
Rufe Job-Anzahlen gruppiert nach Status ab:
$stats = Queuety::stats(); // all queues
$stats = Queuety::stats( 'emails' ); // specific queue
// Returns: ['pending' => 12, 'processing' => 3, 'completed' => 150, 'failed' => 2, 'buried' => 1]
Über CLI:
wp queuety status
wp queuety status --queue=emails
Zurückgestellte Jobs
Liste alle zurückgestellten Jobs auf (nach ausgeschöpften Wiederholungsversuchen fehlgeschlagen):
$buried = Queuety::buried(); // all queues
$buried = Queuety::buried( 'emails' ); // specific queue
Wiederhole sie:
Queuety::retry( $job_id ); // retry a specific job
Queuety::retry_buried(); // retry all buried jobs
Abgeschlossene Jobs bereinigen
Entferne alte abgeschlossene Jobs, um die Datenbank sauber zu halten:
$count = Queuety::purge(); // uses QUEUETY_RETENTION_DAYS (default: 7)
$count = Queuety::purge( 30 ); // purge jobs older than 30 days
Über CLI:
wp queuety purge
wp queuety purge --older-than=30