对于我的Rails应用程序,我使用了Grape gem来设置一个API。我添加了一个测试post方法,该代码需要休眠10秒钟并返回 {'status' => 'success'}。除了API调用会阻塞所有发送到服务器的其他请求外,一切正常。任何其他请求都不会被执行,直到这个睡眠10秒的API完成。任何来自前端界面的GET请求都将延迟。如果我模拟了两个API调用,第二个调用需要20秒钟(10秒钟等待第一个完成)才能完成。请给出建议。
api.rb文件如下:
api.rb文件如下:
module ProjectName
module MyErrorFormatter
def self.call message, backtrace, options, env
{ "status" => "Fail", "error_message" => message }.to_json
end
end
class API < Grape::API
format :json
default_format :json
prefix 'api'
cascade false
error_formatter :json, MyErrorFormatter
helpers APIHelpers
before do
authenticate!
end
post do
if params[:action].present?
p_url = format_url(params)
redirect "/api/#{params[:action]}?key=#{params[:key]}#{p_url}"
end
end
post 'test' do
sleep(10)
{'status'=>'success'}
end
end
end
我正在使用Rails 4.2.0版本