【发布时间】:2013-03-20 06:57:43
【问题描述】:
假设我有一个单进程 Rack 应用程序,如果多个请求同时到达,call(env) 的调用是否可以同时发生?还是保证call(env) 会连续发生,因此@counter 上没有竞争条件?使用 Unicorn 或 Thin 有什么区别吗?
require 'json'
class Greeter
def call(env)
req = Rack::Request.new(env)
@counter ||= 0
@counter = @counter + 1
puts @counter
[200, {"Content-Type" => "application/json"}, [{x:"Hello World!"}.to_json]]
end
end
run Greeter.new
【问题讨论】: