نظام قائمة الانتظار هو قلب Rediacc، حيث يقوم بإدارة توزيع المهام عبر الأجهزة.

ملخص

تدير قائمة الانتظار المهام من خلال دورة الحياة التالية:

PENDING → ASSIGNED → PROCESSING → COMPLETED/FAILED/CANCELLED

الولايات

  • معلق - تم إنشاء المهمة، في انتظار أن يتم التقاطها بواسطة الجسر
  • تم التعيين - تولى Bridge المهمة ويستعد للتنفيذ
  • المعالجة - المهمة قيد التشغيل حاليًا على الجهاز
  • اكتملت - انتهت المهمة بنجاح
  • فشل - واجهت المهمة خطأ
  • تم الإلغاء - تم إلغاء المهمة يدويًا

خصائص المهمة

يحتوي كل عنصر في قائمة الانتظار على:

عقاراكتبالوصف
”معرف المهمة”UUIDمعرف المهمة الفريد
”الحالة”التعدادحالة التنفيذ الحالية
الأولوية1-5أولوية التنفيذ (1 الأعلى)
“إعادة المحاولة”الرقممحاولات إعادة المحاولة المتبقية
بيانات القبوكائنتكوين مهمة مشفرة
الإخراجسلسلةمخرجات تنفيذ المهمة
خطأسلسلةرسالة خطأ في حالة الفشل
تم الإنشاءالطابع الزمنيوقت إنشاء المهمة
مكتمل فيالطابع الزمنيوقت إنجاز المهمة

نظام الأولوية

تتم معالجة المهام حسب ترتيب الأولوية:

  • P1 (حرج) - التنفيذ الفوري (الطوارئ، الأمن)
  • P2 (عالي) - تنفيذ خلال دقائق (عمليات النشر)
  • P3 (عادي) - التنفيذ خلال ساعات (المهام القياسية)
  • P4 (منخفض) - أعمال الخلفية (الصيانة)
  • P5 (الحد الأدنى) - عندما تكون الموارد متاحة (تنظيف)

مثال

# Create high-priority task
./rediacc create task \
  --machine prod-01 \
  --priority 1 \
  --command "systemctl restart app"

آلية إعادة المحاولة

يمكن إعادة محاولة المهام الفاشلة تلقائيًا:

{
  "taskId": "550e8400-e29b-41d4-a716-446655440000",
  "retryCount": 3,
  "retryDelay": 30,
  "maxRetries": 3
}

تكوين سلوك إعادة المحاولة:

  • retryCount - عدد مرات إعادة المحاولة المتبقية
  • retryDelay - الثواني بين محاولات إعادة المحاولة
  • maxRetries - الحد الأقصى لعدد محاولات إعادة المحاولة المسموح بها

قائمة انتظار المراقبة

التحقق من حالة قائمة الانتظار

./rediacc list queue
./rediacc list queue --status PENDING
./rediacc list queue --team Production

مراقبة مهمة محددة

./rediacc inspect queue task-123

المراقبة في الوقت الحقيقي

استخدم وحدة تحكم الويب للحصول على تحديثات وتصورات قائمة الانتظار في الوقت الفعلي.

بيانات المخزن

يمكن أن تتضمن المهام التكوين المشفر:

{
  "vaultData": {
    "function": "deploy",
    "repository": "web-app",
    "version": "1.2.3",
    "environment": "production",
    "credentials": {
      "ssh_key": "[encrypted]",
      "api_token": "[encrypted]"
    }
  }
}

يتم تشفير/فك تشفير بيانات Vault تلقائيًا بواسطة النظام.

عمليات الدفعة

معالجة مهام متعددة بكفاءة:

# Get next 5 tasks
./rediacc list queue --limit 5

# Cancel multiple tasks
./rediacc cancel queue task-1 task-2 task-3 --confirm

أفضل ممارسات قائمة الانتظار

  1. مراقبة عمق قائمة الانتظار - تنبيه إذا زاد حجم قائمة الانتظار بشكل كبير
  2. حدد الأولويات المناسبة - لا تبالغ في استخدام الأولوية 1
  3. استخدام التجميع - المهام المتعلقة بالمجموعة
  4. قم بتكوين عمليات إعادة المحاولة بحكمة - موازنة الموثوقية مقابل استخدام الموارد
  5. أرشفة المهام المكتملة - حافظ على نظافة قائمة الانتظار

استكشاف الأخطاء وإصلاحها

المهام عالقة في المعالجة

إذا كانت المهمة عالقة:

  1. التحقق من حالة الجسر
  2. تحقق من اتصال SSH بالجهاز
  3. قم بمراجعة سجلات المهام بحثًا عن الأخطاء
  4. قم بالإلغاء يدويًا إذا لزم الأمر

تراكم قائمة الانتظار العالية

إذا كانت قائمة الانتظار تتزايد:

  1. التحقق من قدرة الجسر
  2. التحقق من موارد الجهاز
  3. قم بزيادة حجم الدفعة في تكوين الجسر
  4. أضف المزيد من الجسور أو الآلات

فشل المهمة

تحقق دائما:

  1. رسالة خطأ المهمة
  2. سجلات الآلة
  3. سلامة بيانات Vault
  4. اتصال SSH

تعرف على المزيد في أفضل الممارسات.