有谁知道如何强制WEBrick一次处理多个请求?我在我的页面上使用了一些Ajax用于长时间运行的数据库相关任务,我可以清楚地看到请求正在管道中处理。
答案 0 :(得分:4)
如果您使用JRuby,请查看GlassFish gem(宝石形式的精简GlassFish服务器),Trinidad gem(使用Tomcat的相同内容),或warbler等各种其他选项(生成.war文件,您可以直接运行或部署到任何应用服务器)。 JRuby是确保在Ruby上部署高度并发应用程序的最简单方法,并使C Ruby选项看起来相当原始。
答案 1 :(得分:2)
答案 2 :(得分:0)
对于长时间运行的请求,绝对不应该使用WEBrick。该作业的最佳Web服务器可能是Thin,因为它由EventMachine提供支持,可以编写异步代码,以便服务器不会阻塞。
答案 3 :(得分:0)
如果您正在运行rails 4,您可以应用以下补丁,webrick将同时开始提供请求。
diff --git a/railties/lib/rails/commands/server.rb b/railties/lib/rails/commands/server.rb
index e3119ec..ef04aa8 100644
--- a/railties/lib/rails/commands/server.rb
+++ b/railties/lib/rails/commands/server.rb
@@ -93,14 +93,6 @@ module Rails
middlewares << [Rails::Rack::Debugger] if options[:debugger]
middlewares << [::Rack::ContentLength]
- # FIXME: add Rack::Lock in the case people are using webrick.
- # This is to remain backwards compatible for those who are
- # running webrick in production. We should consider removing this
- # in development.
- if server.name == 'Rack::Handler::WEBrick'
- middlewares << [::Rack::Lock]
- end
-
Hash.new(middlewares)
end