Ich arbeite für Schienen auf einige Middleware, mit einem hübschen aktuellere Version arbeiten:Hat Rails standardmäßig * null * Nebenläufigkeit?
pfernand-2-mn:~ pfernand$ rails -v
Rails 3.1.2
Dies ist die Ausgabe von rake middleware
ist:
use ActionDispatch::Static
** use Rack::Lock **
use ActiveSupport::Cache::Strategy::LocalCache
use Rack::Runtime
use Rails::Rack::Logger
use ActionDispatch::ShowExceptions
use ActionDispatch::RemoteIp
use Rack::Sendfile
use ActionDispatch::Callbacks
use ActiveRecord::ConnectionAdapters::ConnectionManagement
use ActiveRecord::QueryCache
use ActionDispatch::Cookies
use ActionDispatch::Session::CookieStore
use ActionDispatch::Flash
use ActionDispatch::ParamsParser
use Rack::MethodOverride
use ActionDispatch::Head
use ActionDispatch::BestStandardsSupport
run MyApp::Application.routes
Die Sache ist, dass die zweite Komponente ist Rack::Lock
, as far as I know, ein Mutex, der den ganzen frigging Schienenstapel einwickelt (!).
Bedeutet dies, dass es in Schienen keine Parallelität gibt, egal welche Plattform Sie verwenden? (Ich benutze JRuby).
Ich weiß, dass ich die Sperre löschen mit:
config.middleware.delete(Rack::Lock)
Aber leider, die alles bricht. Bedeutet das, dass meine App nicht sicher ist?
Kurze Geschichte: Schienen 2 war nicht, jeder behauptete, es ist nicht möglich, Merb bewiesen, wurde in Schienen 3 verschmolzen, so sollte 3 sein. – Reactormonk
Das ist rails3 genau dort und es hat einen Mutex um den ganzen Stack. Sag mir, wie das als mutlithreaded betrachtet wird –
Wie bricht es alles? – Reactormonk