Class: EventPeople::Listener

Inherits:
Object
  • Object
show all
Defined in:
lib/event_people/listener.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.on(event_name, max_attempts: nil, delay_strategy: nil, dlq_name: nil, &block) ⇒ Object



5
6
7
# File 'lib/event_people/listener.rb', line 5

def self.on(event_name, max_attempts: nil, delay_strategy: nil, dlq_name: nil, &block)
  new.on(event_name, max_attempts: max_attempts, delay_strategy: delay_strategy, dlq_name: dlq_name, &block)
end

Instance Method Details

#on(event_name, max_attempts: nil, delay_strategy: nil, dlq_name: nil, &block) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/event_people/listener.rb', line 9

def on(event_name, max_attempts: nil, delay_strategy: nil, dlq_name: nil, &block)
  raise(MissingAttributeError, 'Event name must be present') unless event_name&.size&.positive?

  event_name = consumed_event_name(event_name)

  retry_config = EventPeople::Config.get_retry_config
  retry_config[:max_attempts]   = max_attempts   unless max_attempts.nil?
  retry_config[:delay_strategy] = delay_strategy unless delay_strategy.nil?
  retry_config[:dlq_name]       = dlq_name       unless dlq_name.nil?

  EventPeople::Config.broker.consume(event_name, retry_config: retry_config, &block)
end