これが私のコードです。スリープを使用して、長時間実行されるリクエストをシミュレートします
require 'eventmachine'
def test (i)
puts "#{i} start to sleep..."
sleep i
puts "#{i} end..."
end
EventMachine.run do
(1..3).each do |i|
test i
end
Signal.trap("INT") do
connection.close do
EM.stop { exit }
end
end
end
それは私に与えます:
1 start to sleep...
#### after 1 second
1 end...
2 start to sleep...
#### after 2 seconds
2 end...
3 start to sleep...
#### after 3 seconds
3 end...
私は得ると思います:
#### immediately
1 start to sleep...
2 start to sleep...
3 start to sleep...
#### after 1 second
1 end...
#### after 1 second
2 end...
#### after 1 second
3 end...
私のコードの何が問題なのですか?同時実行する方法は? または、どうすればできますか?