Class: SharedBroker::Adapters::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/shared_broker/adapters/base.rb

Direct Known Subclasses

InMemory, Kafka, RabbitMQ, Redis

Instance Method Summary collapse

Instance Method Details

#publish(topic, message, correlation_id: nil) ⇒ Object

Raises:

  • (NotImplementedError)


6
7
8
# File 'lib/shared_broker/adapters/base.rb', line 6

def publish(topic, message, correlation_id: nil)
  raise NotImplementedError, "#{self.class.name} must implement #publish"
end

#publish_batch(topic, messages, correlation_id: nil) ⇒ Object



10
11
12
13
14
15
16
17
18
# File 'lib/shared_broker/adapters/base.rb', line 10

def publish_batch(topic, messages, correlation_id: nil)
  unless messages.is_a?(Array)
    raise ArgumentError, "Expected messages to be an Array, got #{messages.class} with value #{messages.inspect}"
  end

  messages.each do |message|
    publish(topic, message, correlation_id: correlation_id)
  end
end

#redrive_dlq(dlq_name, original_topic, limit: nil) ⇒ Object

Raises:

  • (NotImplementedError)


24
25
26
# File 'lib/shared_broker/adapters/base.rb', line 24

def redrive_dlq(dlq_name, original_topic, limit: nil)
  raise NotImplementedError, "#{self.class.name} must implement #redrive_dlq"
end

#subscribe(topic, queue_name, max_retries: 3, backoff_base: 2, &block) ⇒ Object

Raises:

  • (NotImplementedError)


20
21
22
# File 'lib/shared_broker/adapters/base.rb', line 20

def subscribe(topic, queue_name, max_retries: 3, backoff_base: 2, &block)
  raise NotImplementedError, "#{self.class.name} must implement #subscribe"
end