Pular para o conteúdo

Gerenciamento de filas

Queuety aceita várias filas nomeadas. Cada worker processa uma fila ou uma lista ordenada de filas (consulte Workers), e cada fila pode ser pausada e retomada de forma independente.

Filas nomeadas

Despache jobs para filas 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' );

Execute workers para cada fila:

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

A fila padrão é default. Se você não especificar uma fila, os jobs irão para ela.

Pausar e retomar

Pause uma fila para impedir que os workers solicitem novos jobs. Os jobs que já estão em processamento serão concluídos, mas nenhum novo job será iniciado.

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

Verifique se uma fila está pausada:

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

Por meio de CLI:

Shell
wp queuety pause emails
wp queuety resume emails

Isso é útil durante implantações ou períodos de manutenção, quando você quer interromper temporariamente o processamento sem encerrar o worker.

Estatísticas da fila

Obtenha a contagem de jobs agrupada por status:

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

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

Por meio de CLI:

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

Jobs em espera

Liste todos os jobs em espera (que falharam após esgotar as tentativas):

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

Tente executá-los novamente:

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

Apagar jobs concluídos

Remova jobs concluídos antigos para manter o banco de dados limpo:

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

Por meio de CLI:

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