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