В приложении rails у меня есть асинхронный метод, который работает только асинхронно, когда запросы отличаются.em-synchrony не является асинхронным для идентичных запросов
В моем контроллере у меня есть этот метод:
require "em-synchrony/em-http"
def test
EventMachine.synchrony do
page = EventMachine::HttpRequest.new("http://127.0.0.1:8081/").get
render :json => {result: page.response}
request.env['async.callback'].call(response)
end
throw :async
end
на моей странице я называю этот метод следующим образом:
//Not asynchronous. :(
//The second request takes twice more time than the first one
$.get("/test");
$.get("/test");
Однако, чтобы сделать вызовы асинхронными, мне нужно запросы быть такие как:
//Asynchronous. :D
$.get("/test?a");
$.get("/test?b");
Почему? Я бы хотел, чтобы мой код всегда был асинхронным. Даже для идентичных запросов. FYI Я использую сервер Thin