Pengelolaan Antrean
Queuety mendukung beberapa antrean bernama. Setiap worker memproses satu antrean atau daftar antrean berurutan (lihat Worker), dan antrean dapat dijeda serta dilanjutkan secara terpisah.
Antrean bernama
Kirim pekerjaan ke antrean tertentu:
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' );
Jalankan worker untuk setiap antrean:
wp queuety work --queue=emails
wp queuety work --queue=media
wp queuety work --queue=sync
Antrean default adalah default. Jika Anda tidak menentukan antrean, pekerjaan akan masuk ke sana.
Menjeda dan melanjutkan
Jeda antrean untuk menghentikan worker mengambil pekerjaan baru. Pekerjaan yang sedang diproses akan diselesaikan, tetapi tidak ada pekerjaan baru yang akan diambil.
Queuety::pause( 'emails' );
Queuety::resume( 'emails' );
Periksa apakah antrean dijeda:
if ( Queuety::is_paused( 'emails' ) ) {
// Queue is paused
}
Melalui CLI:
wp queuety pause emails
wp queuety resume emails
Ini berguna selama proses deployment atau masa pemeliharaan saat Anda ingin menghentikan pemrosesan sementara tanpa mematikan worker.
Statistik antrean
Dapatkan jumlah pekerjaan yang dikelompokkan berdasarkan status:
$stats = Queuety::stats(); // all queues
$stats = Queuety::stats( 'emails' ); // specific queue
// Returns: ['pending' => 12, 'processing' => 3, 'completed' => 150, 'failed' => 2, 'buried' => 1]
Melalui CLI:
wp queuety status
wp queuety status --queue=emails
Pekerjaan yang dikarantina
Daftar semua pekerjaan yang dikarantina (gagal setelah seluruh percobaan ulang habis):
$buried = Queuety::buried(); // all queues
$buried = Queuety::buried( 'emails' ); // specific queue
Coba lagi:
Queuety::retry( $job_id ); // retry a specific job
Queuety::retry_buried(); // retry all buried jobs
Menghapus pekerjaan yang selesai
Hapus pekerjaan lama yang sudah selesai agar database tetap bersih:
$count = Queuety::purge(); // uses QUEUETY_RETENTION_DAYS (default: 7)
$count = Queuety::purge( 30 ); // purge jobs older than 30 days
Melalui CLI:
wp queuety purge
wp queuety purge --older-than=30