Foreman: المفهوم: التبعية

تم إنشاؤها على ١٧ يناير ٢٠١٢  ·  3تعليقات  ·  مصدر: ddollar/foreman

أهلا،

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

يدعم الإصدار الموجود على https://github.com/rvanlieshout/foreman تعريف التبعية في ملف Procfile. في الوقت الحالي ، لا يستغرق الأمر سوى تأخير لمدة 5 ثوانٍ للسماح لأحد الوالدين بالبدء. يمكن أن يبدو ملف procfile مثل:

mongodb:       mongod --quiet --dbpath=db/mongo/
| redis:       redis-server /opt/local/etc/redis.conf
| | worker:    bundle exec rake environment resque:work QUEUE=* VERBOSE=1 RAILS_ENV=development
| | scheduler: bundle exec rake resque:scheduler QUEUE=* VERBOSE=1 RAILS_ENV=development
post_office:   post_office --smtp 10025 --pop3 10110

(ملاحظة: Redis لا يعتمد على Mongo هنا ... فقط للتوضيح)

عند تنفيذ "بدء فورمان" ، يبدأ تشغيل Mongo و PostOffice أولاً ، يليه Redis بعد 5 ثوانٍ والعامل والمجدول بعد 10.

هذا الإصدار من Foreman متوافق مع الإصدارات السابقة ، ولكنه يثير بعض القضايا / الأسئلة الأخرى:

  • لماذا تنتظر 5 ثوان؟ هل نحن قادرون على التحديد عندما تكون العملية "جاهزة" لبدء التبعيات
  • لا تنتظر 5 ثوانٍ عند إيقاف العمليات بينما يمكننا فقط انتظار توقف الوالد
  • ما هو تأثير هذه التبعية عند التصدير؟

إذن .. هل كانت لديك أسئلة تتعلق بالتبعية من قبل؟ هل تعتقد أن هذا الحل قد يكون شيئًا سيتم تضمينه في إصدار مستقبلي من فورمان؟

و ... شكرا لهذا المشروع! إنه يساعدنا حقًا في تحسين سير عمل التطوير لدينا.

ال 3 كومينتر

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

إذا كنت تشعر بالميل الشديد ، فيمكنك تغليف عملياتك بنص يراقب توفر شيء آخر قبل بدء العملية المقصودة.

هتافات،
ديفيد

أحب هذا :( - لدي مجموعة من عمليات RTSPProxy و RTSPClient وأريد تأخير بدء العملاء.

هل تم تنفيذه بعد؟

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات