Я даю async Sinatra попытку и возникли проблемы.Async_Sinatra блокируется только при запросе со вкладки браузера
При использовании следующего простого кода:
require 'sinatra'
require 'sinatra/async'
Sinatra.register Sinatra::Async
aget '/delay/?' do
logger.info "Connected"
EM.add_timer(5) { body {"delayed for 5 seconds" } }
end
Это прекрасно работает, когда я одновременно запросить/задержки/с абами, принимая 5 секунд для всех запросов.
Он блокирует, однако, когда я запрашиваю/задерживаю/изнутри 2 вкладки Chrome (или Firefox), и он выполняется последовательно, в результате чего второй запрос занимает 10 секунд.
Забавно, что запрос с нескольких вкладок Safari выполняется снова (параллельно).
Любая идея, что может быть причиной такого поведения?
Gem Версия:
gem 'sinatra', "~> 1.3.2"
gem "eventmachine", "1.0.0.beta.4.1"
gem 'thin', "~> 1.3.1"
gem "async_sinatra", "~> 1.0.0"