برمجة

جدولة Laravel على أكثر من سيرفر: متى تحتاج onOneServer؟

فريق فايندو جروب2 دقائق قراءة0 مشاهدة0 تعليقات
مشاركة:
لوحة خوادم تعرض مهمة Laravel مجدولة على خادم واحد وحالة القفل المشترك

بعد إضافة سيرفر ثانٍ لتطبيق Laravel، قد يظهر التقرير المجدول مرتين رغم أن تعريف المهمة لم يتغير. وفي حالة أخرى يبدأ التقرير التالي قبل انتهاء السابق على السيرفر نفسه. الحالتان مختلفتان، وتحتاجان مراجعة عدد المجدولات وسياسة التداخل وطريقة حماية الأثر الناتج عن المهمة.

احصر من يشغل المجدول فعلًا

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

توضح وثائق Laravel 12 للجدولة أن withoutOverlapping يمنع بدء نسخة أثناء استمرار السابقة باستخدام أقفال الكاش. أما onOneServer فيختار تشغيلًا واحدًا بين الخوادم عبر قفل ذري، ويحتاج مخزن كاش مركزيًا مشتركًا من الأنواع المدعومة. الأقفال المحلية المنفصلة لا تثبت التنسيق بين الأجهزة.

اختر الحماية حسب سبب التكرار

المشكلة المرصودةالسؤال المطلوب حسمه
عدة مجدولات في الدقيقة نفسهاهل تتنافس على القفل المركزي نفسه؟
مهمة أطول من فاصل تشغيلهاهل يسمح بتداخل تشغيلين؟
توقف العملية بعد أثر جزئيكيف تكتشف الأثر السابق عند الاستئناف؟
انتهاء القفل قبل المهمةهل قد يبدأ تشغيل آخر وهي ما زالت نشطة؟

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

نفذ تجربة لا ترسل أثرًا حقيقيًا

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

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

احم الأثر حتى مع نجاح القفل

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

التصنيفات:برمجة
شارك:

التعليقات

لا توجد تعليقات بعد

أضف تعليقك

كن أول من يعلق على هذا المقال

02 · تابع القراءة

مقالات ذات صلة