Saltar al contenido

Gestión de colas

Queuety admite varias colas con nombre. Cada trabajador procesa una cola o una lista ordenada de colas (consulte Trabajadores), y las colas se pueden pausar y reanudar de forma independiente.

Colas con nombre

Envíe trabajos a colas específicas:

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

Ejecute trabajadores para cada cola:

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

La cola predeterminada es default. Si no especifica una cola, los trabajos se envían allí.

Pausar y reanudar

Pause una cola para impedir que los trabajadores reclamen nuevos trabajos. Los trabajos que ya se estén procesando terminarán, pero no se recogerán nuevos.

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

Compruebe si una cola está pausada:

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

Mediante CLI:

Shell
wp queuety pause emails
wp queuety resume emails

Esto resulta útil durante las implementaciones o los periodos de mantenimiento, cuando quiere detener temporalmente el procesamiento sin finalizar el trabajador.

Estadísticas de la cola

Obtenga el recuento de trabajos agrupados por estado:

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

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

Mediante CLI:

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

Trabajos en la cola de fallidos

Enumere todos los trabajos fallidos (que agotaron los reintentos sin completarse):

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

Reinténtelos:

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

Eliminar trabajos completados

Elimine los trabajos completados antiguos para mantener limpia la base de datos:

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

Mediante CLI:

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