Sha256: dfe5a81e88d1816472507bf859e5f51838708be6d554444093a4fa0f701168ee
Contents?: true
Size: 1.55 KB
Versions: 53
Compression:
Stored size: 1.55 KB
Contents
#!/usr/bin/env ruby # encoding: utf-8 require "bundler" Bundler.setup $:.unshift(File.expand_path("../../../lib", __FILE__)) require 'amqp' puts "=> Queue redeclaration with different attributes results in a channel exception that is handled" puts AMQP.start("amqp://guest:guest@dev.rabbitmq.com:5672") do |connection, open_ok| AMQP::Channel.new do |channel, open_ok| puts "Channel ##{channel.id} is now open!" channel.on_error do |ch, channel_close| puts <<-ERR Handling a channel-level exception. AMQP class id : #{channel_close.class_id}, AMQP method id: #{channel_close.method_id}, Status code : #{channel_close.reply_code} Error message : #{channel_close.reply_text} ERR end EventMachine.add_timer(0.4) do # these two definitions result in a race condition. For sake of this example, # however, it does not matter. Whatever definition succeeds first, 2nd one will # cause a channel-level exception (because attributes are not identical) AMQP::Queue.new(channel, "amqpgem.examples.channel_exception", :auto_delete => true, :durable => false) do |queue| puts "#{queue.name} is ready to go" end AMQP::Queue.new(channel, "amqpgem.examples.channel_exception", :auto_delete => true, :durable => true) do |queue| puts "#{queue.name} is ready to go" end end end show_stopper = Proc.new do $stdout.puts "Stopping..." connection.close { EM.stop { exit } } end Signal.trap "INT", show_stopper EM.add_timer(2, show_stopper) end
Version data entries
53 entries across 53 versions & 1 rubygems