У меня есть следующий код:
require 'rubygems'
require 'eventmachine'
require 'em-http'
require 'sinatra/base'
require 'sinatra/async'
class Api < Sinatra::Base
register Sinatra::Async
aget '/1' do
EventMachine.run {
http = EventMachine::HttpRequest.new( "http://www.google.com").get(:timeout => 5)
http.callback { puts "h2" ;ret_val = http.response; EventMachine.stop}
http.errback {puts "was h2ere1" ;ret_val = nil; EventMachine.stop}
}
body "done processing 1"
end
aget '/2' do
body "done processing 2"
end
end
Когда я выдаю следующее, оно работает хорошо:
curl http://localhost:3000/2
Но, когда я запускаю следующий запрос, он печатает «h2» и приложение молча завершает работу:
curl http://localhost:3000/1
Любая помощь будет оценена. Спасибо!