إيجي تاج · اعرف. ناقش. جرّب. نفّذ.

قفل المهام المجدولة بين عدة خوادم: كيف تمنع التكرار بعد تعطل أحد العمال؟

القفل الموزع يقلل تزامن العمال لكنه لا يغني عن منع تكرار أثر المهمة.

دليل عملي

القفل الموزع يقلل تزامن العمال لكنه لا يغني عن منع تكرار أثر المهمة.

عندما تشغّل المنصة أكثر من نسخة من التطبيق، قد تحاول كل نسخة تنفيذ المهمة المجدولة نفسها. قد يؤدي ذلك إلى إرسال إشعارين أو إنشاء سجلين أو معالجة طلب مرتين. يحتاج النظام إلى تنسيق بين العمال، لكن القفل الموزع وحده لا يضمن أن أثر المهمة حدث مرة واحدة؛ فالانقطاع قد يقع بعد نجاح العملية وقبل تسجيل نجاحها.

عرّف هوية التشغيل قبل القفل

أنشئ معرفًا ثابتًا لكل تشغيل منطقي، مثل اسم المهمة مع موعدها أو معرف الطلب. خزّن الحالة المرتبطة بهذا المعرف بحيث يستطيع عامل جديد معرفة ما تم إنجازه. لا تكتفِ بمعرفة أن عاملًا حصل على القفل؛ فقد يكون قد أرسل الرسالة ثم تعطل قبل كتابة نتيجة التنفيذ.

اختر آلية تنسيق مشتركة

يمكن استخدام قفل تدعمه قاعدة البيانات أو خدمة تنسيق مخصصة بحسب متطلبات النظام. يجب أن يكون القفل مرئيًا لجميع العقد، وأن يملك مهلة انتهاء وآلية واضحة لتجديد الملكية. لا تستخدم متغيرًا داخل ذاكرة عملية واحدة إذا كانت المهام موزعة على عدة خوادم. اختبر ما يحدث عندما يفقد العامل الاتصال بخدمة القفل.

احمِ النظام من العامل الذي يستيقظ متأخرًا

قد يتوقف عامل مؤقتًا ثم يستأنف بعد أن انتقلت ملكية القفل إلى عامل آخر. في الأنظمة الحساسة، يمكن استخدام رقم جيل متزايد أو Fencing Token تتحقق منه جهة التخزين قبل قبول التغيير. بهذه الطريقة لا يستطيع عامل قديم الكتابة بعد فقد الملكية. القفل الذي ينتهي وحده لا يمنع هذا السيناريو.

اجعل الأثر نفسه قابلًا للإعادة بأمان

استخدم قيدًا فريدًا في قاعدة البيانات أو مفتاح Idempotency عندما تسمح الخدمة الخارجية بذلك. إذا كان إرسال الطلب نجح لكن الرد ضاع، ينبغي ألا تنشئ الإعادة أثرًا ثانيًا. فرّق بين المهام التي يمكن تكرارها بلا ضرر وبين العمليات التي تتطلب تحققًا إضافيًا مثل الدفع أو إصدار فاتورة.

اختبر التعطل أثناء مراحل مختلفة

شغّل عاملين في الوقت نفسه، وأوقف الأول بعد الحصول على القفل، ثم بعد تنفيذ جزء من العمل، ثم بعد إرسال النتيجة وقبل تسجيلها. تحقق من أن العامل الثاني يستطيع الاستكمال دون مضاعفة الأثر. راقب عمر المهام المعلقة ومدة احتجاز القفل وعدد المحاولات، لأن النجاح يعني سلامة النتيجة النهائية لا مجرد عدم تزامن التنفيذ.

هل تريد الاحتفاظ بالمقال أو إعادة استخدامه؟
مجتمع إيجي تاجعن المجتمع

شارك في تقييم ونقاش المقال

رأيك يضيف قيمة للمقال ويساعدنا على تحسين المحتوى والنقاش حوله.

تفاعل مع المقالاختر التفاعل المناسب، ويمكنك تغيير رأيك لاحقًا.
قيّم جودة المقاللا توجد تقييمات بعد — كن أول من يقيّم.

نقاش القراء

النقاش

جارٍ تحميل التعليقات…

بعد هذه المادة

تابع القراءة

من نفس القسم04
  1. 02
  2. 03
  3. 04
اختيار القراء

الأكثر قراءة

الترتيب الكامل
  1. 01
  2. 02
  3. 03
  4. 04
  5. 05
يتجدد مع النشر

أحدث المواد

  1. 01
  2. 02
  3. 03
  4. 04
  5. 05
  6. 06