Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save michaelklishin/1025700 to your computer and use it in GitHub Desktop.

Select an option

Save michaelklishin/1025700 to your computer and use it in GitHub Desktop.
An example of how amqp gem 0.8.x lets you handle returned messages
require 'rubygems'
require 'amqp'
puts "=> Handling returned messages"
puts
AMQP.start(:host => '127.0.0.1') do |connection|
channel = AMQP.channel
channel.on_error { |ch, channel_close| EventMachine.stop; raise "channel error: #{channel_close.reply_text}" }
exchange = channel.fanout("amq.fanout")
exchange.on_return do |basic_return, metadata, payload|
puts "#{payload} was returned! reply_code = #{basic_return.reply_code}, reply_text = #{basic_return.reply_text}"
end
EventMachine.add_timer(0.3) {
10.times do |i|
exchange.publish("Message ##{i}", :immediate => true)
end
}
EventMachine.add_timer(2) {
connection.close { EventMachine.stop }
}
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment