نظام قائمة الانتظار هو قلب 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
- استخدام التجميع - المهام المتعلقة بالمجموعة
- قم بتكوين عمليات إعادة المحاولة بحكمة - موازنة الموثوقية مقابل استخدام الموارد
- أرشفة المهام المكتملة - حافظ على نظافة قائمة الانتظار
استكشاف الأخطاء وإصلاحها
المهام عالقة في المعالجة
إذا كانت المهمة عالقة:
- التحقق من حالة الجسر
- تحقق من اتصال SSH بالجهاز
- قم بمراجعة سجلات المهام بحثًا عن الأخطاء
- قم بالإلغاء يدويًا إذا لزم الأمر
تراكم قائمة الانتظار العالية
إذا كانت قائمة الانتظار تتزايد:
- التحقق من قدرة الجسر
- التحقق من موارد الجهاز
- قم بزيادة حجم الدفعة في تكوين الجسر
- أضف المزيد من الجسور أو الآلات
فشل المهمة
تحقق دائما:
- رسالة خطأ المهمة
- سجلات الآلة
- سلامة بيانات Vault
- اتصال SSH
تعرف على المزيد في أفضل الممارسات.