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:
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ö:
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.
Queuety::pause( 'emails' );
Queuety::resume( 'emails' );
Kontrollera om en kö är pausad:
if ( Queuety::is_paused( 'emails' ) ) {
// Queue is paused
}
Via CLI:
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:
$stats = Queuety::stats(); // all queues
$stats = Queuety::stats( 'emails' ); // specific queue
// Returns: ['pending' => 12, 'processing' => 3, 'completed' => 150, 'failed' => 2, 'buried' => 1]
Via CLI:
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):
$buried = Queuety::buried(); // all queues
$buried = Queuety::buried( 'emails' ); // specific queue
Gör om försöken:
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:
$count = Queuety::purge(); // uses QUEUETY_RETENTION_DAYS (default: 7)
$count = Queuety::purge( 30 ); // purge jobs older than 30 days
Via CLI:
wp queuety purge
wp queuety purge --older-than=30