Køstyring
Queuety understøtter flere navngivne køer. Hver worker behandler én kø eller en ordnet liste af køer (se Workers), og køer kan sættes på pause og genoptages uafhængigt af hinanden.
Navngivne køer
Send jobs til bestemte 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 workers for hver kø:
wp queuety work --queue=emails
wp queuety work --queue=media
wp queuety work --queue=sync
Standardkøen er default. Jobs sendes dertil, hvis du ikke angiver en kø.
Sæt på pause og genoptag
Sæt en kø på pause for at forhindre workers i at hente nye jobs. Jobs, der allerede behandles, bliver færdige, men der hentes ingen nye jobs.
Queuety::pause( 'emails' );
Queuety::resume( 'emails' );
Tjek, om en kø er sat på pause:
if ( Queuety::is_paused( 'emails' ) ) {
// Queue is paused
}
Via CLI:
wp queuety pause emails
wp queuety resume emails
Dette er nyttigt under udrulninger eller vedligeholdelsesvinduer, hvor du midlertidigt vil stoppe behandlingen uden at afbryde workeren.
Køstatistik
Hent antal jobs fordelt 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
Parkerede jobs
Vis alle parkerede jobs (fejlede efter at have opbrugt alle genforsøg):
$buried = Queuety::buried(); // all queues
$buried = Queuety::buried( 'emails' ); // specific queue
Prøv igen:
Queuety::retry( $job_id ); // retry a specific job
Queuety::retry_buried(); // retry all buried jobs
Sletning af fuldførte jobs
Fjern gamle fuldførte jobs for at holde databasen ryddelig:
$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