Treci la conținut

Gestionarea cozilor

Queuety acceptă mai multe cozi cu nume. Fiecare worker procesează o coadă sau o listă ordonată de cozi (consultați Workeri), iar cozile pot fi suspendate și reluate independent.

Cozi cu nume

Lansați sarcini în anumite cozi:

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

Rulați workeri pentru fiecare coadă:

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

Coada implicită este default. Dacă nu specificați o coadă, sarcinile ajung acolo.

Suspendarea și reluarea

Suspendați o coadă pentru a împiedica workerii să preia sarcini noi. Sarcinile deja în curs se vor încheia, dar nu vor fi preluate altele noi.

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

Verificați dacă o coadă este suspendată:

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

Prin CLI:

Shell
wp queuety pause emails
wp queuety resume emails

Acest lucru este util în timpul lansărilor sau al perioadelor de mentenanță, când doriți să opriți temporar procesarea fără să opriți workerul.

Statistici despre cozi

Obțineți numărul de sarcini grupate după stare:

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

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

Prin CLI:

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

Sarcini în carantină

Listați toate sarcinile în carantină (care au eșuat după epuizarea încercărilor de reluare):

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

Reluați-le:

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

Ștergerea sarcinilor încheiate

Eliminați sarcinile vechi încheiate pentru a păstra baza de date curată:

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

Prin CLI:

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