• EnglishEspañol日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

Criar um problema

message_transaction (API do agente Python)

Sintaxe

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)

Reportar mensagem funciona como transação.

Requisitos

Versão do agente 2.88.0.72 ou superior.

Descrição

Este decorador retorna uma parcial de MessageTransactionWrapper que pode ser usada como decorador para uma função de mensagens. Quando usado, o decorador retornado registra uma transação de mensagem e seu atributo relacionado à mensagem.

Se o decorador não funcionar em seu aplicativo, você poderá usar um dos seguintes:

  • The context manager

    : O formulário do gerenciador de contexto é MessageTransaction. Leva o mesmo parâmetro do decorador.

  • The wrapper

    : o formulário do wrapper é MessageTransactionWrapper. Pode ser usado para retornar uma função encapsulada sem o uso de um decorador.

  • The path-based wrapper

    : o formulário wrapper baseado em caminho é wrap_message_transaction. Isso aplica o MessageTransactionWrapper a um determinado objeto por meio de monkey patching. Isso usa os mesmos parâmetros do decorador mais um parâmetro module e object_path adicional.

Para uma explicação de quando essas diferentes chamadas devem ser utilizadas, consulte Diferentes formatos de chamada. Consulte Exemplos para exemplos de chamadas.

Parâmetro

Parâmetros para message_transaction e 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)

O decorador e o gerenciador de contexto usam estes parâmetros:

Parâmetro

Descrição

library

string ou função

Obrigatório. O nome (ou tipo) do agente de mensagens em uso. Passe uma string que o define ou uma função que o retorna.

destination_type

string ou função

Obrigatório. O tipo de destino visado pela operação. Passe uma string que o define ou uma função que o retorna. Normalmente é Exchange ou Queue.

destination_name

string ou função

Obrigatório. O nome do destino alvo da operação. Passe uma string que o define ou uma função que o retorna.

application

Aplicativo

Obrigatório. Uma instância do aplicativo, conforme retornado por application.

routing_key

string ou função

Opcional. A chave de roteamento da mensagem.

exchange_type

string ou função

Opcional. O tipo de troca da mensagem.

headers

dicionário ou função

Opcional. Os cabeçalhos da mensagem.

queue_name

string ou função

Opcional. A propriedade do nome da fila da mensagem.

reply_to

string ou função

Opcional. A propriedade replyTo da mensagem.

correlation_id

string ou função

Opcional. A propriedade correlationID da mensagem.

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)

O MessageTransactionWrapper usa todos os mesmos parâmetros do decorador , além deste parâmetro wrapped :

Parâmetro

Descrição

wrapped

função

Obrigatório. A função de mensagens a ser atribuída ao tempo do corretor de mensagens.

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)

Isso leva todos os parâmetros que o decorador faz, além de um parâmetro module e um parâmetro object_path :

Parâmetro

Descrição

module

objeto

Obrigatório. O módulo que contém o objeto a ser empacotado.

object_path

corda

Obrigatório. O caminho para o objeto a ser encapsulado.

Valores de retorno

O decorador message_transaction retorna uma parcial MessageTransactionWrapper .

Exemplos

exemplo de message_transaction

Um exemplo do decorador:

mt = message_transaction('library', 'Exchange', 'x', routing_key='foo.bar')
@mt
def foo():
pass

Exemplo de MessageTransaction

Um exemplo usando o gerenciador de contexto:

def callback(method, properties, body):
with MessageTransaction('library', 'Exchange', 'x', application=app):
pass

Exemplo de MessageTransactionWrapper

Um exemplo usando o wrapper:

basic_consume_wrapper = newrelic.agent.MessageTransactionWrapper(basic_consume_register_callback, 'library', 'Queue', 'x')
method_frame, header_frame, body = basic_consume_wrapper('queue')

exemplo de wrap_message_transaction

Um exemplo usando o wrapper baseado em caminho:

wrap_message_transaction('module', 'Foo.bar', 'library', 'Exchange', 'x')
Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.