require 'rubygems' require 'timeout' require 'mq' 10.times do |i| puts "Run: #{i}" em = Thread.new { EM.run } q = MQ.queue("test#{i}") @msg = nil q.subscribe { |msg| @msg = msg } q.publish i begin Timeout::timeout(5) do loop do break unless @msg.nil? sleep 1 end puts "MSG: #{@msg}" end rescue Timeout::Error puts "Timeout on test#{i}" end AMQP.stop { EM.stop } em.join puts "------------" end