İçeriğe geç

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:

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

Her kuyruk için işçi çalıştırın:

Kabuk
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.

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

Bir kuyruğun duraklatılmış olup olmadığını kontrol edin:

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

CLI üzerinden:

Kabuk
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:

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

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

CLI üzerinden:

Kabuk
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):

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

Yeniden deneyin:

PHP
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:

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

CLI üzerinden:

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