ما هي الحالة الراهنة على خيوط, التزامن و متشعب العمليات في روبي على القضبان ؟

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

  •  02-07-2019
  •  | 
  •  

سؤال

روبي على القضبان لا مؤشرات الطلب-الردود جيدا ، أو على الأقل ، ActiveRecord لا.

مفهوم طلب واحد فقط-استجابة نشطة في نفس الوقت يمكن أن يكون من المتاعب عند إنشاء تطبيقات الويب التي مفترق قبالة شل الأمر الذي يستغرق وقتا طويلا للانتهاء.

ما أود هي بعض من وجهات النظر الخاصة بك على هذه الأنواع من الأجهزة?هو القضبان ربما ليس مناسبا لبعض التطبيقات ؟

أيضا ، ما هي الحالة الراهنة فيما يتعلق التزامن في روبي على القضبان ؟ ما هي أفضل الممارسات.هناك الحلول إلى القصور ؟

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

المحلول

القضبان حاليا لا التعامل مع الطلبات المتزامنة في واحدة التصوير بالرنين المغناطيسي (ماتز روبي مترجم) روبي العملية.كل طلب essentally ملفوفة مع عملاق مزامنة.الكثير من العمل في صنع المقبلة القضبان 2.2 مؤشر الترابط-الآمن ، ولكن أنت لن تحصل على الكثير من الاستفادة من هذا عندما تعمل تحت روبي 1.8 x.لا أستطيع التعليق على ما إذا كانت روبي 1.9 سوف تكون مختلفة لأن أنا لم تكن مألوفة جدا مع ذلك ، ولكن ربما لا أعتقد.

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

نصائح أخرى

Neverblock يسمح لغير عرقلة وظيفة دون تعديل طريقة كتابة البرامج.هو حقا مثيرة تبحث المشروع ، backported للعمل على روبي 1.8.x (يعتمد على روبي 1.9 ألياف).يعمل مع كل من كيو و الخلية لأداء عدم عرقلة الاستعلامات.على المعايير مجانين...

ماتز روبي 1.8 يستخدم الأخضر المواضيع, و ماتز روبي 1.9 سوف تستخدم الأم O/S المواضيع.تطبيقات أخرى من "روبي" 1.8 ، مثل JRuby و IronRuby استخدام الأم O/S المواضيع.YARV قصيرة أخرى روبي VM, أيضا يستخدم الأصلي O/S المواضيع ولكن لديه مترجم العالمي قفل لضمان واحدة فقط روبي موضوع التنفيذ في أي وقت.

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

إذا كان هذا لا ينطبق على الوضع الخاص بك, سيكون لديك للتأكد من مثيلات متعددة من التطبيق الخاص بك تشغيل ملقمات.عادة الناس أن بدء تشغيل مثيلات متعددة من الهجين.ولكن الآن أنا أقول أسهل طريقة متين الإعداد هو حتى الآن باستخدام Phusion الركاب.انها طائرة أباتشي وحدة الذي يسمح لك بسهولة تحديد كيفية العديد من الحالات (min و max) من التطبيق الخاص بك خوادم كنت تريد أن يكون قيد التشغيل.الركاب بالباقي.و إذا كنت أتذكر بشكل صحيح, فإنه لا يفعل غبي جولة روبن عن إرسال الطلبات.أعتقد أنه من توافر.

روبي 1.9 مضيفا خفيفة الوزن من الألياف:

http://www.infoq.com/news/2007/08/ruby-1-9-fibers

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