Class: TorqueBox::Messaging::BackgroundableProcessor Private

Inherits:
MessageProcessor show all
Defined in:
lib/torquebox/messaging/backgroundable_processor.rb

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

API:

  • private

Instance Attribute Summary

Attributes inherited from MessageProcessor

#message

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from MessageProcessor

#initialize, #initialize_proxy, list, lookup, #method_missing, #on_error, #process!, #reply

Methods included from ProcessorMiddleware::DefaultMiddleware

default, #middleware

Constructor Details

This class inherits a constructor from TorqueBox::Messaging::MessageProcessor

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class TorqueBox::Messaging::MessageProcessor

Class Method Details

.log_newrelic_notice(klass) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

API:

  • private



27
28
29
30
31
# File 'lib/torquebox/messaging/backgroundable_processor.rb', line 27

def self.log_newrelic_notice(klass)
  @newrelic_notice_logged ||=
    log.warn( "The New Relic agent is loaded, but an issue with the inheritance hierachy of " <<
              klass.name << " prevents us from reporting on its Backgroundable calls." ) || true
end

Instance Method Details

#on_message(hash) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

API:

  • private



33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/torquebox/messaging/backgroundable_processor.rb', line 33

def on_message(hash)
  FutureResponder.new( Queue.new( hash[:future_queue] ), hash[:future_id], hash[:future_ttl] ).respond do
    klass = hash[:receiver].class
    if klass.respond_to?( :__enable_backgroundable_newrelic_tracing )
      klass.__enable_backgroundable_newrelic_tracing( hash[:method] )
    elsif Backgroundable.newrelic_available? 
      self.class.log_newrelic_notice( klass )
    end
    
    hash[:receiver].send(hash[:method], *hash[:args])
  end
end