جدولة Resque على Heroku ... هل تفعل ذلك عن بُعد؟
-
27-09-2019 - |
سؤال
أنا أضيف 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
المحلول
أعتقد أنني أخطأت في قراءة سؤالك في المرة الأولى. فاتني الجزء الذي يتطلب فيه المجدول مهمة انطلاق منفصلة.
نعم ، أعتقد أن الطريقة الوحيدة للقيام بذلك هي أن يكون هناك اثنين من تطبيقات Heroku منفصلة ، لأن عمال Heroku سوف يركضان فقط rake jobs:work
ويفترض أنه يمكنك فقط تعيين هذا على إحدى مهام RESKE RAKE.
يمكنك تجربة هذا:
desc "Alias for resque:work (To run workers on Heroku)"
task "jobs:work" => ["resque:work", "resque:scheduler"]
لكن لدي شكوك صادقة حول هذا العمل بشكل صحيح مع كيفية قيام هيروكو بمراقبة عمليات العمال والأشياء. أيضا ، تحقق مزدوج بناء جملة أشعل النار هناك ؛ انها فقط من الذاكرة. أعلم أنه من الممكن تحديد تبعيات متعددة.