class Jobi::Clients::Rabbitmq

Constants

MESSAGE_OPTIONS
QUEUE_OPTIONS

Public Class Methods

new(config = Jobi::Config::Rabbitmq.new) click to toggle source
# File lib/jobi/clients/rabbitmq.rb, line 15
def initialize(config = Jobi::Config::Rabbitmq.new)
  @connection = Bunny.new(config.to_h)
  @connection.start
end

Public Instance Methods

channel() click to toggle source
# File lib/jobi/clients/rabbitmq.rb, line 20
def channel
  @channel ||= @connection.create_channel
end
default_exchange() click to toggle source
# File lib/jobi/clients/rabbitmq.rb, line 24
def default_exchange
  @default_exchange ||= channel.default_exchange
end
publish(message:, queue:, options: {}) click to toggle source
# File lib/jobi/clients/rabbitmq.rb, line 33
def publish(message:, queue:, options: {})
  queue.publish(message, build_options(options, MESSAGE_OPTIONS))
end
queue(name:, options: {}) click to toggle source
# File lib/jobi/clients/rabbitmq.rb, line 28
def queue(name:, options: {})
  default_exchange
  channel.queue(name, build_options(options, QUEUE_OPTIONS))
end

Private Instance Methods

build_options(options = {}, original_options) click to toggle source
# File lib/jobi/clients/rabbitmq.rb, line 39
def build_options(options = {}, original_options)
  options.inject({}) do |mapped_options, (key, value)|
    mapped_options[original_options[key]] = value
    mapped_options
  end
end