سؤال

أنا أضيف resque-scheduler في تطبيقي على هيروكو

لذلك ... أحتاج إلى عامل واحد وحده ومتميز يعمل كمجدول والعديد منهم يقومون بالوظائف.

هكذا فعلت ذلك:
لدي تطبيق Heroku متميز لا يفعل شيئًا سوى عامل جدولة واحدة ، يعمل على مدار الساعة طوال أيام الأسبوع ، مضيفًا resque مهام لـ Redis DB لـ "البعيدة" الأساسية برنامج.

(أفعل ذلك رسم الخرائط الوظائف: العمل مهمة ل resque: جدولة أو resque: العمل)

هل هذه هي أفضل طريقة للقيام بذلك على منصة Heroku ؛ أم أفعل ذلك بشكل خاطئ تمامًا؟

شكرًا !

تحرير: تطبيق الحد الأدنى للجدولة على Heroku:http://github.com/clmntlxndr/heroku-scheduler

تحديث: مع مكدس الأرز الجديد على Heroku و Procfiles ، من الممكن بدء مهمة مميزة لكل عامل.

web:        bundle exec rails server -p $PORT
scheduler:  bundle exec rake resque:scheduler
worker:     bundle exec rake jobs:work

http://devcenter.heroku.com/articles/procfile

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

المحلول

أعتقد أنني أخطأت في قراءة سؤالك في المرة الأولى. فاتني الجزء الذي يتطلب فيه المجدول مهمة انطلاق منفصلة.

نعم ، أعتقد أن الطريقة الوحيدة للقيام بذلك هي أن يكون هناك اثنين من تطبيقات Heroku منفصلة ، لأن عمال Heroku سوف يركضان فقط rake jobs:work ويفترض أنه يمكنك فقط تعيين هذا على إحدى مهام RESKE RAKE.

يمكنك تجربة هذا:

desc "Alias for resque:work (To run workers on Heroku)"
task "jobs:work" => ["resque:work", "resque:scheduler"]

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

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