Class: Superbolt::Runner::Default

Inherits:
Base
  • Object
show all
Defined in:
lib/superbolt/runner/default.rb

Direct Known Subclasses

Ack, AckOne, Greedy

Instance Attribute Summary

Attributes inherited from Base

#block, #error_queue, #logger, #queue

Instance Method Summary collapse

Methods inherited from Base

#channel, #initialize, #on_error

Constructor Details

This class inherits a constructor from Superbolt::Runner::Base

Instance Method Details

#ackObject



26
27
# File 'lib/superbolt/runner/default.rb', line 26

def ack
end

#prefetchObject



29
30
# File 'lib/superbolt/runner/default.rb', line 29

def prefetch
end

#processor_classObject



32
33
34
# File 'lib/superbolt/runner/default.rb', line 32

def processor_class
  Superbolt::Processor
end

#runObject



4
5
6
7
# File 'lib/superbolt/runner/default.rb', line 4

def run
  set_prefetch
  subscribe
end

#set_prefetchObject



9
10
11
# File 'lib/superbolt/runner/default.rb', line 9

def set_prefetch
  channel.prefetch(prefetch) if prefetch
end

#subscribeObject



13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/superbolt/runner/default.rb', line 13

def subscribe
  queue.subscribe(ack: ack) do |delivery_info, , payload|

    message = Superbolt::IncomingMessage.new(delivery_info, payload, channel)
    processor = processor_class.new(message, logger, &block)
    unless processor.perform
      on_error(message.parse, processor.exception)
    end

    message.ack if ack
  end
end