Sha256: b29e770da08a3c1a414d7077a857d074b9334e82c4f261b6b8285e442c0c2f3a

Contents?: true

Size: 1.08 KB

Versions: 51

Compression:

Stored size: 1.08 KB

Contents

#!/usr/bin/env ruby
# encoding: utf-8

__dir = File.dirname(File.expand_path(__FILE__))
require File.join(__dir, "example_helper")

amq_client_example "Channel-level exception handling" do |client|
  channel = AMQ::Client::Channel.new(client, 1)
  channel.open do
    puts "Channel #{channel.id} is now open"

    show_stopper = Proc.new {
      client.disconnect do
        puts
        puts "AMQP connection is now properly closed"
        EM.stop
      end
    }



    channel.on_error do |ch, close|
      puts "Oops, there is a channel-level exception: #{close.inspect}"

      EM.add_timer(1.2) { show_stopper.call }
    end

    # amq.* names are reserevd so this causes a channel-level exception. MK.
    x = AMQ::Client::Exchange.new(client, channel, "amq.client.examples.extensions.x1", :direct)
    x.declare(false, false, false, true, false)


    EM.add_timer(1) do
      if channel.closed?
        puts "1 second later channel #{channel.id} is closed"
      end
    end

    Signal.trap "INT",  show_stopper
    Signal.trap "TERM", show_stopper

    EM.add_timer(2, show_stopper)
  end
end

Version data entries

51 entries across 51 versions & 1 rubygems

Version Path
amq-client-0.9.0 examples/eventmachine_adapter/channel_level_exception_handling.rb
amq-client-0.9.0.pre2 examples/eventmachine_adapter/channel_level_exception_handling.rb
amq-client-0.9.0.pre1 examples/eventmachine_adapter/channel_level_exception_handling.rb
amq-client-0.8.7 examples/eventmachine_adapter/channel_level_exception_handling.rb
amq-client-0.8.7.pre1 examples/eventmachine_adapter/channel_level_exception_handling.rb
amq-client-0.8.6 examples/eventmachine_adapter/channel_level_exception_handling.rb
amq-client-0.8.5 examples/eventmachine_adapter/channel_level_exception_handling.rb
amq-client-0.8.4 examples/eventmachine_adapter/channel_level_exception_handling.rb
amq-client-0.8.3 examples/eventmachine_adapter/channel_level_exception_handling.rb
amq-client-0.8.2 examples/eventmachine_adapter/channel_level_exception_handling.rb
amq-client-0.8.1 examples/eventmachine_adapter/channel_level_exception_handling.rb
amq-client-0.8.0 examples/eventmachine_adapter/channel_level_exception_handling.rb
amq-client-0.7.0.alpha35 examples/eventmachine_adapter/channel_level_exception_handling.rb
amq-client-0.7.0.alpha34 examples/eventmachine_adapter/channel_level_exception_handling.rb
amq-client-0.7.0.alpha33 examples/eventmachine_adapter/channel_level_exception_handling.rb
amq-client-0.7.0.alpha32 examples/eventmachine_adapter/channel_level_exception_handling.rb
amq-client-0.7.0.alpha31 examples/eventmachine_adapter/channel_level_exception_handling.rb
amq-client-0.7.0.alpha30 examples/eventmachine_adapter/channel_level_exception_handling.rb
amq-client-0.7.0.alpha29 examples/eventmachine_adapter/channel_level_exception_handling.rb
amq-client-0.7.0.alpha28 examples/eventmachine_adapter/channel_level_exception_handling.rb