【发布时间】:2014-07-17 19:06:27
【问题描述】:
我有一个非常简单的 Sinatra 应用程序来测试多线程(或多处理——我只想在 3 秒内得到响应,不管服务器上处理了多少其他查询)。
require 'sinatra/base'
class MyApp < Sinatra::Base
set :threaded, true
get '/freeze' do
Thread.new {
sleep 3
}.join
'Its finished'
end
run! if app_file == $0
end
从这个主题我发现,Sinatra 实际上是从 1.3 开始的多线程(我有 1.4.5)。 Is Sinatra multi threaded?
我用瘦和独角兽尝试过,通过thin --threaded 和只是ruby my_app.rb。没有区别,第二个请求需要 6 秒来处理。我试图将 gem 切换到 async_sinatra 或 sinatra-synchrony 但一切都毫无意义。
我做错了什么?
【问题讨论】:
标签: ruby multithreading sinatra