/usr/share/doc/ruby-amqp/examples/error_handling/connection_loss_handler.rb is in ruby-amqp 0.9.5-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | #!/usr/bin/env ruby
# encoding: utf-8
require "bundler"
Bundler.setup
$:.unshift(File.expand_path("../../../lib", __FILE__))
require 'amqp'
puts "=> Connection loss is detected and handled"
puts
AMQP.start(:port => 5672,
:vhost => "amq_client_testbed",
:user => "amq_client_gem",
:password => "amq_client_gem_password",
:timeout => 0.3,
:on_tcp_connection_failure => Proc.new { |settings| puts "Failed to connect, this was NOT expected"; EM.stop }) do |connection, open_ok|
connection.on_tcp_connection_loss do |cl, settings|
puts "tcp_connection_loss handler kicks in"
cl.reconnect(false, 1)
end
show_stopper = Proc.new do
$stdout.puts "Stopping..."
connection.close { EventMachine.stop }
end
puts "Connected, authenticated. To really exercise this example, shut AMQP broker down for a few seconds. If you don't it will exit gracefully in 30 seconds."
Signal.trap "INT", show_stopper
EM.add_timer(30, show_stopper)
end
|