Я использую discogs-wrapper
gem для доступа к некоторой музыкальной информации, но я заметил, что во время запроса API сервер все еще не обслуживается, другие действия аналогичны функции отладчика. Я считаю, что фактический запрос запускается в следующей части гема, когда я вызываю функцию Discogs::Artist.find_by_name name
.
Net::HTTP.new(uri.host).start do |http|
http.request(request)
end
Следуя журналу двух запросов в двух разных браузерах (chrome и firefox), я сначала запускаю поиск исполнителя "pink floyd", а затем обновляю корневую страницу в другом браузере, этот последний простой запрос, который обычно занимает миллисекунды , во время запроса API занимает столько времени, сколько длится запрос.
Started GET "/artists/show?utf8=%E2%9C%93&artist_name=pink+floyd&commit=search" for 127.0.0.1 at 2012-01-21 18:03:52 +0000
Processing by ArtistsController#show as HTML
Parameters: {"utf8"=>"✓", "artist_name"=>"pink floyd", "commit"=>"search"}
get_artist(pink floyd)
get_artist(pink floyd) - ended in 26394ms
Rendered artists/_search_form.html.haml (4.3ms)
Rendered discogs/artist/releases/_release.html.haml (606.5ms)
Rendered artists/show.html.haml within layouts/application (1876.4ms)
Completed 200 OK in 28303ms (Views: 1907.8ms | ActiveRecord: 0.0ms)
Started GET "/" for 127.0.0.1 at 2012-01-21 18:04:20 +0000
Processing by ApplicationController#show as HTML
Rendered artists/_search_form.html.haml (4.5ms)
Rendered application/show.html.haml within layouts/application (6.5ms)
Completed 200 OK in 23ms (Views: 22.0ms | ActiveRecord: 0.0ms)
Как я могу избежать бесполезного зависания сервера для ответа, который может занять даже более 30 секунд? - спасибо