Sintaxis
newrelic.agent.message_transaction(library, destination_type, destination_name, application, routing_key=None, exchange_type=None, headers=None, queue_name=None, reply_to=None, correlation_id=None)El mensaje de informe funciona como transacción.
Requisitos
Versión del agente 2.88.0.72 o superior.
Descripción
Este decorador devuelve una parte de MessageTransactionWrapper que puede usarse como decorador para una función de mensajería. Cuando se usa, el decorador devuelto registra una transacción de mensaje y su atributo relacionado con el mensaje.
Si el decorador no funciona en su aplicación, puede utilizar uno de los siguientes:
The context manager
: El formulario del administrador de contexto es
MessageTransaction. Toma el mismo parámetro que el decorador.The wrapper
: El formulario contenedor es
MessageTransactionWrapper. Se puede utilizar para devolver una función envuelta sin el uso de un decorador.The path-based wrapper
: El formulario contenedor basado en ruta es
wrap_message_transaction. Esto aplica elMessageTransactionWrappera un objeto determinado mediante parches de mono. Esto toma los mismos parámetros que el decorador más un parámetromoduleyobject_pathadicional.
Para obtener una explicación de cuándo se deben utilizar estas diferentes llamadas, consulte Diferentes formatos de llamadas. Consulte Ejemplos para ver ejemplos de llamadas.
Parámetros
Parámetros para message_transaction y MessageTransaction
newrelic.agent.message_transaction(library, destination_type, destination_name, application, routing_key=None, exchange_type=None, headers=None, queue_name=None, reply_to=None, correlation_id=None)newrelic.agent.MessageTransaction(library, destination_type, destination_name, application, routing_key=None, exchange_type=None, headers=None, queue_name=None, reply_to=None, correlation_id=None)El decorador y el administrador de contexto utilizan estos parámetros:
Parámetro  | Descripción  | 
|---|---|
 cadena o función  | Requerido. El nombre (o tipo) del intermediario de mensajes en uso. Pase una cadena que lo defina o una función que lo devuelva.  | 
 cadena o función  | Requerido. El tipo de destino objetivo de la operación. Pase una cadena que lo defina o una función que lo devuelva. Normalmente es   | 
 cadena o función  | Requerido. El nombre del destino objetivo de la operación. Pase una cadena que lo defina o una función que lo devuelva.  | 
 Aplicación  | Requerido. Una instancia de aplicación, tal como la devuelve   | 
 cadena o función  | Opcional. La clave de enrutamiento del mensaje.  | 
 cadena o función  | Opcional. El tipo de intercambio del mensaje.  | 
 diccionario o función  | Opcional. Los encabezados del mensaje.  | 
 cadena o función  | Opcional. La propiedad del nombre de la cola del mensaje.  | 
 cadena o función  | Opcional. La propiedad   | 
 cadena o función  | Opcional. La propiedad   | 
Parámetro para MessageTransactionWrapper
newrelic.agent.MessageTransactionWrapper(wrapped, library, destination_type, destination_name, application, routing_key=None, exchange_type=None, headers=None, queue_name=None, reply_to=None, correlation_id=None)El MessageTransactionWrapper toma todos los mismos parámetros que el decorador además de este parámetro wrapped :
Parámetro  | Descripción  | 
|---|---|
 función  | Requerido. La función de mensajería se atribuye al tiempo del intermediario de mensajes.  | 
Parámetro para wrap_message_transaction
newrelic.agent.wrap_message_transaction(module, object_path, library, destination_type, destination_name, application, routing_key=None, exchange_type=None, headers=None, queue_name=None, reply_to=None, correlation_id=None)Esto toma todos los parámetros que hace el decorador además de un parámetro module y un parámetro object_path :
Parámetro  | Descripción  | 
|---|---|
 objeto  | Requerido. El módulo que contiene el objeto que se va a envolver.  | 
 cadena  | Requerido. La ruta al objeto que se va a envolver.  | 
Valores de retorno
El decorador message_transaction devuelve un parcial MessageTransactionWrapper .
Ejemplos
ejemplo de message_transaction
Un ejemplo del decorador:
mt = message_transaction('library', 'Exchange', 'x', routing_key='foo.bar')
@mtdef foo():    passEjemplo de transacción de mensaje
Un ejemplo usando el administrador de contexto:
def callback(method, properties, body):    with MessageTransaction('library', 'Exchange', 'x', application=app):        passEjemplo de MessageTransactionWrapper
Un ejemplo usando el contenedor:
basic_consume_wrapper = newrelic.agent.MessageTransactionWrapper(basic_consume_register_callback, 'library', 'Queue', 'x')
method_frame, header_frame, body = basic_consume_wrapper('queue')ejemplo de wrap_message_transaction
Un ejemplo que utiliza el contenedor basado en ruta:
wrap_message_transaction('module', 'Foo.bar', 'library', 'Exchange', 'x')