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 elMessageTransactionWrapper
a un objeto determinado mediante parches de mono. Esto toma los mismos parámetros que el decorador más un parámetromodule
yobject_path
adicional.
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(): pass
Ejemplo de transacción de mensaje
Un ejemplo usando el administrador de contexto:
def callback(method, properties, body): with MessageTransaction('library', 'Exchange', 'x', application=app): pass
Ejemplo 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')