Parent

Included Modules

Files

Class/Module Index [+]

Quicksearch

ActiveMessaging::MessageReceiver

Attributes

connection[RW]
pause[RW]
poller[RW]

Public Class Methods

new(poller, connection, pause=1) click to toggle source
# File lib/activemessaging/threaded_poller.rb, line 150
def initialize(poller, connection, pause=1)
  logger.debug("MessageReceiver initialize: poller:#{poller}, connection:#{connection}, pause:#{pause}")
  
  raise "No connection found for '#{poller.connection}'" unless connection
  
  self.poller     = poller
  self.connection = connection
  self.pause      = pause
end

Public Instance Methods

logger() click to toggle source
# File lib/activemessaging/threaded_poller.rb, line 181
def logger; ::ActiveMessaging.logger; end
receive(worker) click to toggle source
# File lib/activemessaging/threaded_poller.rb, line 160
def receive(worker)
  return unless poller.running

  # logger.debug("***** MessageReceiver calling receive")
  message = self.connection.receive(worker.options)
  # logger.debug("***** MessageReceiver receive returned")

  if message
    logger.debug("ActiveMessaging::MessageReceiver.receive: message:'#{message.inspect}'")
    poller.dispatch!(message, worker)
  else
    if (!poller || !poller.alive? || !poller.running)
      logger.debug("ActiveMessaging::MessageReceiver.receive: terminate")
      self.terminate
    end
    logger.debug("ActiveMessaging::MessageReceiver.receive: no message, retry in #{pause} sec")
    after(pause) { receive(worker) }
  end
  
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.