Queue Management
Queuety supports multiple named queues. Workers process one queue at a time, and queues can be paused and resumed independently.
Named queues
Dispatch jobs to specific queues:
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' );
Run workers for each queue:
Shell
wp queuety work --queue=emails
wp queuety work --queue=media
wp queuety work --queue=sync
The default queue is default. If you don't specify a queue, jobs go there.
Pause and resume
Pause a queue to stop workers from claiming new jobs. Jobs already being processed will finish, but no new jobs will be picked up.
PHP
Queuety::pause( 'emails' );
Queuety::resume( 'emails' );
Check if a queue is paused:
PHP
if ( Queuety::is_paused( 'emails' ) ) {
// Queue is paused
}
Via CLI:
Shell
wp queuety pause emails
wp queuety resume emails
This is useful during deployments or maintenance windows when you want to temporarily stop processing without killing the worker.
Queue statistics
Get job counts grouped by 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
Buried jobs
List all buried jobs (failed after exhausting retries):
PHP
$buried = Queuety::buried(); // all queues
$buried = Queuety::buried( 'emails' ); // specific queue
Retry them:
PHP
Queuety::retry( $job_id ); // retry a specific job
Queuety::retry_buried(); // retry all buried jobs
Purging completed jobs
Remove old completed jobs to keep the database clean:
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