#!/usr/bin/env ruby require 'bunny' Bundler.setup begin connection = Bunny.new(:automatically_recover => false) connection.start ch = connection.channel q = ch.queue("manually_reconnecting_consumer", :exclusive => true) q.subscribe(:block => true) do |_, _, payload| puts "Consumed #{payload}" end rescue Bunny::NetworkFailure => e ch.maybe_kill_consumer_work_pool! sleep 10 puts "Recovering manually..." retry end