سؤال

إليك سيناريو الحالة المثالية البسيطة عندما أرغب في تشغيل وظيفة تأخير:

  • عندما يبدأ خادم التطبيق الأول (سواء من خلال mongrel أو الركاب) ، سيبدأ عمال الوظائف المتأخرون.
  • عندما ينتهي آخر خادم التطبيق ، فإنه سيقتل جميع عمال الوظائف المتأخرون.

الجزء الأول (البدء) قابل للتنفيذ ، على الرغم من أنني لست متأكدًا من الطريقة "الصحيحة" أو "الأفضل" للقيام بذلك. ما عليك سوى جعل استدعاء نظام مشروط (في العملية غير قيد التشغيل بالفعل) إلى تأخير _job البدء؟

الجزء الثاني (إنهاء) - حسنًا ، لست متأكدًا مما إذا كان قابلاً للتنفيذ أم لا. بالتأكيد ليس لديك فكرة عن كيفية تحقيق هذا التأثير.

أي أفكار أو أفكار؟

هل هناك طريقة أخرى لبدء/نهاية عمال الوظائف الذين تعتقد أنهم أفضل؟

السؤال الجانبي: الأسئلة الرئيسية أعلاه هي لبيئة الإنتاج - حالة أكثر صعوبة لأن هناك خوادم تطبيق متعددة تعمل في نفس الوقت. هل يمكن القيام بالشيء نفسه بسهولة في بيئة التطوير (حيث يتم ضمان أن يكون خادم تطبيق واحد فقط ، وليس مجموعة منهم) عن طريق ربط عملية الطفل لتشغيل عمال الوظائف المتأخرون الذين ينتهيون دائمًا عندما ينتهي الوالد؟ كيف لي أن تذهب عن القيام بذلك؟

هل كانت مفيدة؟

المحلول

يمكنك بالتأكيد سحب الانتهاء مع الله.

ما عليك سوى مشاهدة عمليات التطبيق وسيقوم الله بإطلاق رد الاتصال عندما تتوقف جميعًا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top