انتقل إلى المحتوى

إدارة قوائم الانتظار

يدعم Queuety قوائم انتظار متعددة بأسماء مختلفة. يعالج كل عامل قائمة انتظار واحدة أو قائمة مرتبة من قوائم الانتظار (راجع العمال)، ويمكن إيقاف القوائم واستئنافها كلٌّ على حدة.

قوائم الانتظار المسماة

أرسل المهام إلى قوائم انتظار محددة:

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

شغّل العمال لكل قائمة انتظار:

سطر الأوامر
wp queuety work --queue=emails
wp queuety work --queue=media
wp queuety work --queue=sync

قائمة الانتظار الافتراضية هي default. إذا لم تحدد قائمة، فستُرسل المهام إليها.

الإيقاف المؤقت والاستئناف

أوقف قائمة انتظار مؤقتًا لمنع العمال من استلام مهام جديدة. ستكتمل المهام التي تجري معالجتها، لكن لن تُستلم مهام جديدة.

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

تحقق مما إذا كانت قائمة انتظار متوقفة مؤقتًا:

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

عبر CLI:

سطر الأوامر
wp queuety pause emails
wp queuety resume emails

يفيد ذلك أثناء النشر أو فترات الصيانة، حين تريد إيقاف المعالجة مؤقتًا دون إنهاء العامل.

إحصاءات قائمة الانتظار

احصل على أعداد المهام مجمعة حسب الحالة:

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

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

عبر CLI:

سطر الأوامر
wp queuety status
wp queuety status --queue=emails

المهام المدفونة

اعرض جميع المهام المدفونة (التي أخفقت بعد استنفاد محاولات إعادة التنفيذ):

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

أعد محاولة تنفيذها:

PHP
Queuety::retry( $job_id );       // retry a specific job
Queuety::retry_buried();         // retry all buried jobs

حذف المهام المكتملة

أزل المهام القديمة المكتملة للحفاظ على نظافة قاعدة البيانات:

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

عبر CLI:

سطر الأوامر
wp queuety purge
wp queuety purge --older-than=30