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