class Pushr::Daemon::MessageHandler

Attributes

connection[R]
name[R]

Public Class Methods

new(queue_name, connection, name, i) click to toggle source
# File lib/pushr/daemon/message_handler.rb, line 6
def initialize(queue_name, connection, name, i)
  @queue_name = queue_name
  @connection = connection
  @name = "#{name}: MessageHandler #{i}"
  Pushr::Daemon.logger.info "[#{@name}] listening to #{@queue_name}"
end

Public Instance Methods

start() click to toggle source
# File lib/pushr/daemon/message_handler.rb, line 13
def start
  Thread.new do
    loop do
      handle_next
      break if @stop
    end
  end
end
stop() click to toggle source
# File lib/pushr/daemon/message_handler.rb, line 22
def stop
  @stop = true
end

Protected Instance Methods

handle_next() click to toggle source
# File lib/pushr/daemon/message_handler.rb, line 28
def handle_next
  message = Pushr::Message.next(@queue_name)
  return if message.nil?

  Pushr::Core.instrument('message', app: message.app, type: message.type) do
    connection.write(message)
    Pushr::Daemon.logger.info("[#{connection.name}] Message delivered to #{message.to_json}")
  end
rescue => e
  Pushr::Daemon.logger.error(e)
end