Class: BBQueue::Consumer

Inherits:
Object
  • Object
show all
Defined in:
lib/bbqueue/consumer.rb

Instance Method Summary collapse

Constructor Details

#initialize(queue_names, options = {}) ⇒ Consumer

Returns a new instance of Consumer.



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/bbqueue/consumer.rb', line 4

def initialize(queue_names, options = {})
  logger = options[:logger] || BBQueue::NullLogger.new

  Stalking::Consumer.new options.merge(:logger => BBQueue::FatalLogger.new(logger)) do
    Array(queue_names).each do |queue_name|
      job queue_name do |args|
        BBQueue::Serializer.load(args["object"]).work
      end
    end

    before do |queue_name, args|
      logger.info "Job #{BBQueue::Serializer.load(args["object"]).inspect} on #{queue_name.inspect} started"
    end

    after do |queue_name, args|
      logger.info "Job #{BBQueue::Serializer.load(args["object"]).inspect} on #{queue_name.inspect} finished"
    end

    error do |e, queue_name, args|
      logger.error "Job #{BBQueue::Serializer.load(args["object"]).inspect} on #{queue_name.inspect} failed"
      logger.error e
    end
  end
end