Для моего приложения rails я создал API с драгоценным камнем Grape. Я добавляю метод тестового сообщения, что код спящий 10 секунд и возвращает {'status' => 'success'}. Все работает, за исключением того, что вызов API блокирует все другие запросы, отправленные на сервер. Любые другие запросы не будут выполняться до тех пор, пока этот сон не завершится 10 секунд. Любой запрос GET с интерфейсного интерфейса будет задерживаться. И если я имитирую два вызова api, то требуется второй вызов 20 секунд (10 секунд для ожидания завершения первого). Просьба сообщить об этом.Запрос API Grape для рельсов блокирует другие запросы
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