Pop Example
$:.unshift File.dirname(__FILE__) + '/../../lib'
require 'mq'
require 'pp'
Signal.trap('INT') { AMQP.stop{ EM.stop } }
Signal.trap('TERM'){ AMQP.stop{ EM.stop } }
AMQP.start do
queue = MQ.queue('awesome')
queue.publish('Totally rad 1')
queue.publish('Totally rad 2')
EM.add_timer(5){ queue.publish('Totally rad 3') }
queue.pop{ |msg|
unless msg
# queue was empty
p [Time.now, :queue_empty!]
# try again in 1 second
EM.add_timer(1){ queue.pop }
else
# process this message
p [Time.now, msg]
# get the next message in the queue
queue.pop
end
}
end
__END__
[Wed Oct 15 15:24:30 -0700 2008, "Totally rad 1"]
[Wed Oct 15 15:24:30 -0700 2008, "Totally rad 2"]
[Wed Oct 15 15:24:30 -0700 2008, :queue_empty!]
[Wed Oct 15 15:24:31 -0700 2008, :queue_empty!]
[Wed Oct 15 15:24:32 -0700 2008, :queue_empty!]
[Wed Oct 15 15:24:33 -0700 2008, :queue_empty!]
[Wed Oct 15 15:24:34 -0700 2008, :queue_empty!]
[Wed Oct 15 15:24:35 -0700 2008, "Totally rad 3"]
[Wed Oct 15 15:24:35 -0700 2008, :queue_empty!]
[Wed Oct 15 15:24:36 -0700 2008, :queue_empty!]