Zum Inhalt springen

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:

PHP
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:

Shell
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.

PHP
Queuety::pause( 'emails' );
Queuety::resume( 'emails' );

Prüfe, ob eine Warteschlange pausiert ist:

PHP
if ( Queuety::is_paused( 'emails' ) ) {
    // Queue is paused
}

Über CLI:

Shell
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:

PHP
$stats = Queuety::stats(); // all queues
$stats = Queuety::stats( 'emails' ); // specific queue

// Returns: ['pending' => 12, 'processing' => 3, 'completed' => 150, 'failed' => 2, 'buried' => 1]

Über CLI:

Shell
wp queuety status
wp queuety status --queue=emails

Zurückgestellte Jobs

Liste alle zurückgestellten Jobs auf (nach ausgeschöpften Wiederholungsversuchen fehlgeschlagen):

PHP
$buried = Queuety::buried(); // all queues
$buried = Queuety::buried( 'emails' ); // specific queue

Wiederhole sie:

PHP
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:

PHP
$count = Queuety::purge();     // uses QUEUETY_RETENTION_DAYS (default: 7)
$count = Queuety::purge( 30 ); // purge jobs older than 30 days

Über CLI:

Shell
wp queuety purge
wp queuety purge --older-than=30