Class: TorqueBox::Messaging::BackgroundableProcessor Private

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

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.

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.



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.



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