2013-07-27 19 views
17

Yığınımız, Rails 4 (yea!)puma SADECE çok dişli raylar 4 http sunucusu mu?

'a dönüştürüldüm ve iş parçacığı güvenli kodundan yararlanmaya çalışıyorum.

Puma farklı bir sorun :(

sadece çok kanallı raylar Puma mi görünüyor durdurma, kalkarken çalışır alfabetik olarak

Thin -> EventMachine 
Unicorn -> Forking 
Puma -> multi-threaded 

Mongrel -> don't care 
Webbrick -> don't care 
+1

Bu, "programcılar tarafından yaygın olarak kullanılan yazılım araçları" başlığı altında yer almaz ve dolayısıyla "konu dışı" olmaz mıydı? –

+1

Sayfayı kontrol ettim - http://stackoverflow.com/about gri alanda biraz olsa da, haklı olduğunu düşünüyorum. – Daniel

cevap

27

No:

  • Iodine HTTP/Websocket Server & EventMachine alternative (kqueue/epoll based)reklam olmamasına rağmen,
  • Phusion Passenger çoklu kullanım destekler
  • Net::HTTP::Server 0,
  • Reel çoklu kullanım dahil since v4 beta
  • Rainbows! destekleyen çoklu eşzamanlılık modelleri, çoklu kullanım destekledi "-backed bir Celluloid olduğunu "çok sunuculu uygulamalar için harika çalışıyor ve geleneksel multit sağlar" bloke I/O destek hreaded çok"
  • Thin sahiptir --threaded geçirilerek ya da (uygun bir yapılandırma dosyasında threaded: true ayarlayarak etkinleştirilebilir bir dişli modu, örneğin,)
  • WEBrick10 kendi çok iş parçacıklarının üzerindeyse, bir seçenek olarak onu ortadan kaldırmak adil olmaz; Rails gömülü sürümü kullanıyorsanız, monkey-patch Rails::Server to enable multi-threading
  • Zbatery, Rainbows temel alınacaktır! ve Rainbows'un tüm eşzamanlılık modellerini destekliyor! Şu anda MRG Yakut tek iplik çalışır

Not nedeniyle global interpreter lock (GIL) bir süre çalışır destekler. Yerel parçacıklara erişim sağlayan JRuby veya Rubinius gibi farklı bir Ruby çalışma zamanı kullanarak çoklu iş parçacıklarını kullanmanız gerçekten mümkün olacaktır. Eğer JRuby ile gitmeye karar verirseniz, birçok JVM-dependent servers worth exploring vardır.

+0

Teşekkürler! Bu, bir çok şey için yardımcı oldu – Daniel

+0

Liste için bir tane daha: [iodine] (https://github.com/boazsegev/iodine), hem çok iş parçacığı hem de çoklu süreçleri destekler. – Myst

+0

WeBrick tek iş parçacığı değil mi? –