ما هي أفضل طريقة لتشغيل المهام غير المتزامنة في تطبيق ريلز؟

StackOverflow https://stackoverflow.com/questions/124360

  •  02-07-2019
  •  | 
  •  

سؤال

أعلم أن هناك العديد من المكونات الإضافية التي تقوم بالمعالجة غير المتزامنة.أيهما أفضل ولماذا؟

والذين أعرفهم هم:

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

المحلول

يبدو الزرزور والعامل مثيرين للاهتمام (انظر ملف تسجيل الشاشة) إذا كان لديك العديد من هذه العمليات، وتريد وضعها في قائمة الانتظار.

قد تكون مهتمًا أيضًا بـ تسجيل الشاشة السابق التي تستخدم أشعل النار لعملية الخلفية، وبحلول المستقبل من المحتمل أن يكون حول حل آخر لنفس السؤال.

نصائح أخرى

سأضيف DJ (المهمة المؤجلة) إلى القائمة - http://blog.leetsoft.com/2008/2/17/delayed-job-dj

قام شباب جيثب مؤخرًا بمراجعة رائعة: http://github.com/blog/197-the-new-queue

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

خلفيةRb من المحتمل أن يكون معالج المهام الخلفية لـ Rails هو الأكثر تميزًا، ولكنه أيضًا الأكثر تعقيدًا، لذا سيتطلب المزيد من الاستثمار للتعامل معه.يمكن لـBackgroundRb التعامل مع معظم حالات الاستخدام، بدءًا من البسيطة وحتى المعقدة.

لقد سمعت أشياء جيدة جدًا عن Ara T.هوارد وظيفة الخلفية (BJ) والذي، على حد تعبير التمهيدي، هو قائمة انتظار أولوية خلفية إدارية بسيطة صفرية لـ Rails.يعد هذا حلاً خفيف الوزن وقد يكون أفضل من BackgroundRb بالنسبة لغالبية السيناريوهات نتيجة لذلك.

إذا كان كل ما تريده هو حل للمعالجة غير المتكررة على نمط الدُفعات، فعندئذٍ البرنامج النصي/عداء الذي يأتي مع جميع تطبيقات Rails سيكون أكثر من كافٍ.

لمزيد من القراءة قد ترغب في إلقاء نظرة عليها كيفية تشغيلBackgroundJobsInRails من القضبان ويكي.

يمكن أن يساعدك Resque أيضًا.

إنها أداة رائعة جدًا لإنشاء وظائف الخلفية، ووضع تلك المهام في قوائم انتظار متعددة، ومعالجتها لاحقًا.

لقد قام رجال Github بإنشائه واستخدامه.

قد تساعدك المقالة أدناه على البدء:

http://rubylearning.com/blog/2010/11/08/do-you-know-resque/

البرنامج المساعد Starling + Workling بسيط جدًا.بالإضافة إلى ذلك، فهو يستخدم Memcached وهو بسيط ومختبر وقابل للتطوير.

BackgroundDRb - الايجابيات:كامل المواصفات، الرسائل، السلبيات:مترابطة (eek - Rails ليست آمنة للخيط!) معقدة

مولد الشيطان - الايجابيات:بسيط، يدير الوظائف وهذا كل شيء!، السلبيات:لا شيء من تلك الرسائل الفاخرة.

نحن نستخدم كرون.سهل الإعداد، وسهل الصيانة، ويعمل دائمًا.

سوف يقوم تطبيق "BackgroundRb" بأكل دماغك.

BackgrounDRb ليس مترابطة، فهو يعتمد على العملية بالكامل.إنه يحتوي فقط على ميزة تجمعات مؤشرات الترابط التي يمكن للمستخدم استخدامها، إذا كان يريد التعامل مع المهام المرتبطة بـ IO بشكل متزامن.

جرب الإصدار 1.1 وأخبرني (في مدونتي) أو في القائمة البريدية بأية مشكلات.

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