Gå til indhold

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:

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 workers for hver kø:

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

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

Tjek, om en kø er sat på pause:

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

Via CLI:

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

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

Parkerede jobs

Vis alle parkerede jobs (fejlede efter at have opbrugt alle genforsøg):

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

Prøv igen:

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

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