class Philotic::Consumer
Public Class Methods
auto_acknowledge()
click to toggle source
# File lib/philotic/consumer.rb, line 24 def auto_acknowledge @auto_acknowledge = true end
auto_acknowledge?()
click to toggle source
# File lib/philotic/consumer.rb, line 28 def auto_acknowledge? !!@auto_acknowledge end
exclusive()
click to toggle source
# File lib/philotic/consumer.rb, line 32 def exclusive @exclusive = true end
exclusive?()
click to toggle source
# File lib/philotic/consumer.rb, line 36 def exclusive? !!@exclusive end
manually_acknowledge()
click to toggle source
# File lib/philotic/consumer.rb, line 16 def manually_acknowledge @manually_acknowledge = true end
manually_acknowledge?()
click to toggle source
# File lib/philotic/consumer.rb, line 20 def manually_acknowledge? !!@manually_acknowledge end
rejectable_errors(*errors)
click to toggle source
# File lib/philotic/consumer.rb, line 46 def rejectable_errors(*errors) @rejectable_errors ||= Set.new @rejectable_errors.merge errors @rejectable_errors end
requeueable_errors(*errors)
click to toggle source
# File lib/philotic/consumer.rb, line 40 def requeueable_errors(*errors) @requeueable_errors ||= Set.new @requeueable_errors.merge errors @requeueable_errors end
subscribe()
click to toggle source
# File lib/philotic/consumer.rb, line 52 def subscribe new(Philotic.connection).tap do |instance| instance.subscribe end end
subscribe_to(subscription)
click to toggle source
# File lib/philotic/consumer.rb, line 8 def subscribe_to(subscription) @subscription = subscription end
subscription()
click to toggle source
# File lib/philotic/consumer.rb, line 12 def subscription @subscription end
subscription_options()
click to toggle source
# File lib/philotic/consumer.rb, line 58 def subscription_options { manual_ack: auto_acknowledge? || manually_acknowledge?, exclusive: exclusive?, } end
Public Instance Methods
consume(message)
click to toggle source
# File lib/philotic/consumer.rb, line 72 def consume(message) raise NotImplementedError end
subscribe()
click to toggle source
Calls superclass method
Philotic::Subscriber#subscribe
# File lib/philotic/consumer.rb, line 66 def subscribe super(self.class.subscription, self.class.subscription_options) do |message| _consume(message) end end
Private Instance Methods
_consume(message)
click to toggle source
# File lib/philotic/consumer.rb, line 78 def _consume(message) if self.class.auto_acknowledge? begin consume(message) acknowledge(message) rescue => e if self.class.requeueable_errors.include? e.class reject(message, true) elsif self.class.rejectable_errors.include? e.class reject(message, false) else raise e end end else consume(message) end end