class HonestPubsub::Server::ClientQueueListener

Attributes

worker_class[R]

Public Class Methods

new(worker_class, request_key, queue, durable = true, topic = "honest") click to toggle source
# File lib/honest_pubsub/server/client_queue_listener.rb, line 13
def initialize(worker_class, request_key, queue, durable = true, topic = "honest")
  @topic        = topic
  @request_key  = request_key
  @worker_class = worker_class
  @queue_name   = queue
  @durable      = durable
  @subscriber   = ::HonestPubsub::Server::RabbitMQSubscriber.new(@request_key, @durable, @topic)
end

Public Instance Methods

message_received(delivery_info, properties, envelope) click to toggle source
# File lib/honest_pubsub/server/client_queue_listener.rb, line 36
def message_received(delivery_info, properties, envelope)
  HonestPubsub.logger.debug("Message received by listener on #{worker_class.name} with payload: #{envelope[:payload]}")
  worker = worker_class.new(delivery_info, properties, envelope[:context])
  worker.perform!(envelope[:payload])
rescue => e
  HonestPubsub.logger.error("Failed message for #{worker_class.name}")
  Airbrake.notify("Failed perform for #{worker_class.name}",
                  params: {
                    info:       delivery_info,
                    properties: properties,
                    context:    envelope[:context],
                    payload:    envelope[:payload] })

end
shutdown() click to toggle source
# File lib/honest_pubsub/server/client_queue_listener.rb, line 29
def shutdown
  @subscriber.teardown if @subscriber.present?
  # TODO -thl
  # This the kosher thing to do in ruby?
  teardown
end
start() click to toggle source
# File lib/honest_pubsub/server/client_queue_listener.rb, line 22
def start
  @subscriber.start(@queue_name, false) do |delivery_info, properties, envelope|
    message_received(delivery_info, properties, envelope)
    true
  end
end

Protected Instance Methods

teardown() click to toggle source
# File lib/honest_pubsub/server/client_queue_listener.rb, line 52
def teardown
end