Gestion des files d’attente
Queuety prend en charge plusieurs files d’attente nommées. Chaque worker traite une file ou une liste ordonnée de files (voir Workers), et les files peuvent être mises en pause ou reprises indépendamment.
Files d’attente nommées
Distribuez les tâches vers des files d’attente spécifiques :
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' );
Exécutez des workers pour chaque file d’attente :
wp queuety work --queue=emails
wp queuety work --queue=media
wp queuety work --queue=sync
La file d’attente par défaut est default. Si vous ne précisez pas de file, les tâches y sont envoyées.
Mise en pause et reprise
Mettez une file en pause pour empêcher les workers de prendre de nouvelles tâches. Les tâches déjà en cours seront terminées, mais aucune nouvelle tâche ne sera prise en charge.
Queuety::pause( 'emails' );
Queuety::resume( 'emails' );
Vérifiez si une file d’attente est en pause :
if ( Queuety::is_paused( 'emails' ) ) {
// Queue is paused
}
Via CLI :
wp queuety pause emails
wp queuety resume emails
C’est utile lors des déploiements ou des périodes de maintenance, lorsque vous souhaitez suspendre temporairement le traitement sans arrêter le worker.
Statistiques des files d’attente
Obtenez le nombre de tâches regroupées par état :
$stats = Queuety::stats(); // all queues
$stats = Queuety::stats( 'emails' ); // specific queue
// Returns: ['pending' => 12, 'processing' => 3, 'completed' => 150, 'failed' => 2, 'buried' => 1]
Via CLI :
wp queuety status
wp queuety status --queue=emails
Tâches en attente définitive
Listez toutes les tâches en attente définitive (ayant échoué après épuisement des tentatives) :
$buried = Queuety::buried(); // all queues
$buried = Queuety::buried( 'emails' ); // specific queue
Relancez-les :
Queuety::retry( $job_id ); // retry a specific job
Queuety::retry_buried(); // retry all buried jobs
Purger les tâches terminées
Supprimez les anciennes tâches terminées pour nettoyer la base de données :
$count = Queuety::purge(); // uses QUEUETY_RETENTION_DAYS (default: 7)
$count = Queuety::purge( 30 ); // purge jobs older than 30 days
Via CLI :
wp queuety purge
wp queuety purge --older-than=30