Kuyruk Yönetimi
Queuety birden fazla adlandırılmış kuyruğu destekler. Her işçi bir kuyruğu veya sıralı bir kuyruk listesini işler (bkz. İşçiler); kuyruklar birbirinden bağımsız olarak duraklatılıp sürdürülebilir.
Adlandırılmış kuyruklar
İşleri belirli kuyruklara dağıtın:
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' );
Her kuyruk için işçi çalıştırın:
wp queuety work --queue=emails
wp queuety work --queue=media
wp queuety work --queue=sync
Varsayılan kuyruk default şeklindedir. Bir kuyruk belirtmezseniz işler buraya gider.
Duraklatma ve sürdürme
İşçilerin yeni işleri almasını durdurmak için bir kuyruğu duraklatın. Hâlihazırda işlenen işler tamamlanır, ancak yeni işler alınmaz.
Queuety::pause( 'emails' );
Queuety::resume( 'emails' );
Bir kuyruğun duraklatılmış olup olmadığını kontrol edin:
if ( Queuety::is_paused( 'emails' ) ) {
// Queue is paused
}
CLI üzerinden:
wp queuety pause emails
wp queuety resume emails
Bu, işçiyi sonlandırmadan işlemeyi geçici olarak durdurmak istediğiniz dağıtım veya bakım aralıklarında kullanışlıdır.
Kuyruk istatistikleri
Duruma göre gruplanmış iş sayılarını alın:
$stats = Queuety::stats(); // all queues
$stats = Queuety::stats( 'emails' ); // specific queue
// Returns: ['pending' => 12, 'processing' => 3, 'completed' => 150, 'failed' => 2, 'buried' => 1]
CLI üzerinden:
wp queuety status
wp queuety status --queue=emails
Gömülmüş işler
Tüm gömülmüş işleri listeleyin (yeniden deneme hakları tükendikten sonra başarısız olanlar):
$buried = Queuety::buried(); // all queues
$buried = Queuety::buried( 'emails' ); // specific queue
Yeniden deneyin:
Queuety::retry( $job_id ); // retry a specific job
Queuety::retry_buried(); // retry all buried jobs
Tamamlanan işleri temizleme
Veritabanını temiz tutmak için eski tamamlanmış işleri kaldırın:
$count = Queuety::purge(); // uses QUEUETY_RETENTION_DAYS (default: 7)
$count = Queuety::purge( 30 ); // purge jobs older than 30 days
CLI üzerinden:
wp queuety purge
wp queuety purge --older-than=30