Vai al contenuto

Gestione delle code

Queuety supporta più code con nome. Ogni worker elabora una coda o un elenco ordinato di code (vedere Worker) e le code possono essere sospese e riprese indipendentemente.

Code con nome

Invia i processi a code specifiche:

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

Esegui worker per ogni coda:

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

La coda predefinita è default. Se non specifichi una coda, i processi vengono inseriti lì.

Sospensione e ripresa

Sospendi una coda per impedire ai worker di acquisire nuovi processi. Quelli già in elaborazione verranno completati, ma non ne verranno acquisiti di nuovi.

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

Verifica se una coda è sospesa:

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

Tramite CLI:

Shell
wp queuety pause emails
wp queuety resume emails

È utile durante le distribuzioni o le finestre di manutenzione, quando vuoi interrompere temporaneamente l'elaborazione senza terminare il worker.

Statistiche delle code

Ottieni il conteggio dei processi raggruppati per stato:

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

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

Tramite CLI:

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

Processi sepolti

Elenca tutti i processi sepolti (falliti dopo aver esaurito i tentativi):

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

Riprova a eseguirli:

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

Eliminazione dei processi completati

Rimuovi i vecchi processi completati per mantenere pulito il database:

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

Tramite CLI:

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