Hoppa till innehåll

Köhantering

Queuety stöder flera namngivna köer. Varje arbetare behandlar en kö eller en ordnad lista med köer (se Arbetare), och köer kan pausas och återupptas oberoende av varandra.

Namngivna köer

Skicka jobb till specifika köer:

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' );

Kör arbetare för varje kö:

Shell
wp queuety work --queue=emails
wp queuety work --queue=media
wp queuety work --queue=sync

Standardkön är default. Om du inte anger någon kö hamnar jobben där.

Pausa och återuppta

Pausa en kö för att hindra arbetare från att hämta nya jobb. Jobb som redan behandlas slutförs, men inga nya jobb hämtas.

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

Kontrollera om en kö är pausad:

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

Via CLI:

Shell
wp queuety pause emails
wp queuety resume emails

Detta är användbart vid driftsättningar eller underhåll när du tillfälligt vill stoppa behandlingen utan att avsluta arbetaren.

Köstatistik

Hämta jobbantal grupperade efter status:

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

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

Via CLI:

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

Jobb i karantän

Lista alla jobb i karantän (som misslyckats efter att ha förbrukat alla omförsök):

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

Gör om försöken:

PHP
Queuety::retry( $job_id );       // retry a specific job
Queuety::retry_buried();         // retry all buried jobs

Rensa slutförda jobb

Ta bort gamla slutförda jobb för att hålla databasen ren:

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

Via CLI:

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