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

التسجيل

تسجّل Queuety كل أحداث المهام ومسارات العمل في جدول قاعدة البيانات queuety_logs. لا توجد ملفات سجل. ويمكن الاستعلام عن جميع الإدخالات عبر PHP وAPI وCLI.

أنواع الأحداث

يتضمن كل إدخال في السجل نوع حدث من التعداد LogEvent:

الحدث الوصف
started بدء تنفيذ المهمة
completed اكتمال المهمة بنجاح
failed حدث استثناء أثناء محاولة وسيُعاد تنفيذها (تسجّل المحاولة الأخيرة buried فقط)
buried استنفدت المهمة جميع محاولات إعادة التنفيذ
retried جدولة المهمة لإعادة المحاولة
workflow_started إرسال سير العمل
workflow_completed اكتمال جميع خطوات سير العمل
workflow_failed إخفاق خطوة سير العمل نهائيًا
workflow_paused إيقاف سير العمل مؤقتًا
workflow_resumed استئناف سير العمل
workflow_cancelled إلغاء سير العمل
workflow_rewound إعادة سير العمل إلى خطوة سابقة
workflow_forked تفريع سير العمل إلى سير عمل جديد
workflow_deadline_exceeded فوات الموعد النهائي لـmust_complete_within() في سير العمل
debug رسالة بمستوى التصحيح (عند تفعيل QUEUETY_DEBUG)

حقول السجل

يحتوي كل إدخال في السجل على:

الحقل الوصف
id معرّف يتزايد تلقائيًا
event سلسلة نوع الحدث
handler اسم المعالج أو فئته
job_id معرّف المهمة المرتبطة (يقبل قيمة فارغة)
workflow_id معرّف سير العمل المرتبط (يقبل قيمة فارغة)
step_index فهرس خطوة سير العمل (يقبل قيمة فارغة)
attempt رقم المحاولة
duration_ms مدة التنفيذ بالمللي ثانية
error_message رسالة الخطأ عند الإخفاق
created_at الطابع الزمني

الاستعلام عن السجلات عبر PHP

PHP
$logger = Queuety::logger();

// Logs for a specific job
$logs = $logger->for_job( 42 );

// Logs for a specific workflow
$logs = $logger->for_workflow( 7 );

// Logs for a specific handler
$logs = $logger->for_handler( 'send_email', 50 );

// Logs for a specific event type
$logs = $logger->for_event( \Queuety\Enums\LogEvent::Failed, 50 );

// Logs since a datetime
$logs = $logger->since( new \DateTimeImmutable( '-1 hour' ), 100 );

الاستعلام عن السجلات عبر CLI

سطر الأوامر
# Recent logs (last 24 hours)
wp queuety log

# Logs for a specific job
wp queuety log --job=42

# Logs for a specific workflow
wp queuety log --workflow=7

# Logs for a handler
wp queuety log --handler=send_email

# Logs for an event type
wp queuety log --event=failed

# Logs since a datetime
wp queuety log --since="2025-01-01 00:00:00"

# Custom limit and format
wp queuety log --limit=100 --format=json

الاحتفاظ بالسجلات

تظل السجلات محفوظة إلى أن تمسحها. يقرأ QUEUETY_LOG_RETENTION_DAYS الثابت Config::log_retention_days()، لكن لا شيء يستخدمه حتى الآن، لذا فهو لا يمسح أي شيء (#15). كما يتعذر الوصول إلى الأمر الفرعي wp queuety log purge (#11).

امسح السجلات من PHP، مثلًا عبر مهمة مجدولة خاصة بك أو باستخدام wp eval:

PHP
$count = Queuety::logger()->purge( 30 );