class Lagomorph::Supervisor

Public Class Methods

new(session) click to toggle source
# File lib/lagomorph/supervisor.rb, line 7
def initialize(session)
  @session = session
end

Public Instance Methods

route(queue_name, worker_class, options = {}) click to toggle source
# File lib/lagomorph/supervisor.rb, line 11
def route(queue_name, worker_class, options = {})
  prefetch    = options.fetch :prefetch,    1
  durable     = options.fetch :durable,     false
  subscribers = options.fetch :subscribers, 1

  subscribers.times.map do
    channel = @session.create_channel(prefetch)
    queue   = QueueBuilder.new(channel).queue(queue_name, durable: durable)

    Subscriber.new(worker_class).subscribe(queue, channel)
  end
end