lib/woodhouse/runners/hot_bunnies_runner.rb in woodhouse-0.1.2 vs lib/woodhouse/runners/hot_bunnies_runner.rb in woodhouse-0.1.5

- old
+ new

@@ -17,51 +17,54 @@ raise err } end def subscribe + status :spinning_up client = HotBunnies.connect(@config.server_info) channel = client.create_channel channel.prefetch = 1 queue = channel.queue(@worker.queue_name) exchange = channel.exchange(@worker.exchange_name, :type => :headers) queue.bind(exchange, :arguments => @worker.criteria.amqp_headers) worker = Celluloid.current_actor + status :subscribed queue.subscribe(:ack => true).each(:blocking => false) do |headers, payload| + status :receiving begin job = make_job(headers, payload) if can_service_job?(job) if service_job(job) headers.ack else headers.reject end else - @config.logger.error("Cannot service job #{job.describe} in queue for #{@worker.describe}") + status :rejected headers.reject end + status :subscribed rescue => err + status :error begin - @config.logger.error("Error bubbled up out of worker. This shouldn't happen. #{err.message}") - err.backtrace.each do |btr| - @config.logger.error(" #{btr}") - end headers.reject ensure worker.bail_out(err) end end end wait :spin_down + status :closing ensure client.close end def spin_down signal :spin_down end def bail_out(err) + status :bailing_out, "#{err.class}: #{err.message}" raise Woodhouse::BailOut, "#{err.class}: #{err.message}" end private