ServiceBusSender Classe
A classe ServiceBusSender define uma interface de alto nível para enviar mensagens para o Barramento de Serviço do Azure Queue ou Topic.
Use o método de ~azure.servicebus.ServiceBusClient get_<queue/topic>_sender
para criar uma instância do ServiceBusSender.
- Herança
-
azure.servicebus._base_handler.BaseHandlerServiceBusSenderazure.servicebus._servicebus_sender.SenderMixinServiceBusSender
Construtor
ServiceBusSender(fully_qualified_namespace: str, credential: TokenCredential | AzureSasCredential | AzureNamedKeyCredential, *, queue_name: str | None = None, topic_name: str | None = None, **kwargs: Any)
Parâmetros
- fully_qualified_namespace
- str
O nome do host totalmente qualificado para o namespace do Barramento de Serviço. O formato do namespace é: .servicebus.windows.net.
- credential
- TokenCredential ou AzureSasCredential ou AzureNamedKeyCredential
O objeto de credencial usado para autenticação que implementa uma interface específica para obter tokens. Ele aceita objetos de credencial gerados pela biblioteca de identidade do azure e objetos que implementam o método *get_token(self, scopes) ou, como alternativa, um AzureSasCredential também pode ser fornecido.
- queue_name
- str
O caminho da fila específica do Barramento de Serviço ao qual o cliente se conecta.
- topic_name
- str
O caminho do Tópico do Barramento de Serviço específico ao qual o cliente se conecta.
- logging_enable
- bool
Se os logs de rastreamento de rede devem ser gerados para o agente. O padrão é False.
- transport_type
- TransportType
O tipo de protocolo de transporte que será usado para se comunicar com o serviço do Barramento de Serviço. O padrão é TransportType.Amqp.
- http_proxy
- Dict
Configurações de proxy HTTP. Deve ser um dicionário com as seguintes chaves: 'proxy_hostname' (valor str) e 'proxy_port' (valor int). Além disso, as seguintes chaves também podem estar presentes: 'username', 'password'.
- user_agent
- str
Se especificado, isso será adicionado na frente da cadeia de caracteres interna do agente do usuário.
- client_identifier
- str
Um identificador baseado em cadeia de caracteres para identificar exclusivamente a instância do cliente. O Barramento de Serviço o associará a algumas mensagens de erro para facilitar a correlação de erros. Se não for especificado, uma ID exclusiva será gerada.
- socket_timeout
- float
O tempo em segundos que o soquete subjacente na conexão deve aguardar ao enviar e receber dados antes de atingir o tempo limite. O valor padrão é 0,2 para TransportType.Amqp e 1 para TransportType.AmqpOverWebsocket. Se erros de conexão estiverem ocorrendo devido ao tempo limite de gravação, talvez seja necessário passar um valor maior que o padrão.
Variáveis
- fully_qualified_namespace
- str
O nome do host totalmente qualificado para o namespace do Barramento de Serviço. O formato do namespace é: .servicebus.windows.net.
- entity_name
- str
O nome da entidade à qual o cliente se conecta.
Métodos
cancel_scheduled_messages |
Cancele uma ou mais mensagens que foram agendadas anteriormente e ainda estão pendentes. |
close |
Feche os links do manipulador (e a conexão se o manipulador usar uma conexão separada). Se o manipulador já tiver sido fechado, essa operação não fará nada. |
create_message_batch |
Crie um objeto ServiceBusMessageBatch com o tamanho máximo de todo o conteúdo restrito por max_size_in_bytes. O max_size não deve ser maior que o tamanho máximo permitido da mensagem definido pelo serviço. |
schedule_messages |
Enviar Mensagem ou várias Mensagens a serem enfileiradas em um momento específico. Retorna uma lista dos números de sequência das mensagens enfileiradas. |
send_messages |
Envia mensagens e bloqueia até que a confirmação seja recebida ou a operação atinge o tempo limite. Se uma lista de mensagens tiver sido fornecida, tentará enviá-las como um único lote, lançando um ValueError se elas não puderem caber em um único lote. |
cancel_scheduled_messages
Cancele uma ou mais mensagens que foram agendadas anteriormente e ainda estão pendentes.
cancel_scheduled_messages(sequence_numbers: int | List[int], *, timeout: float | None = None, **kwargs: Any) -> None
Parâmetros
- timeout
- float
O tempo limite total da operação em segundos, incluindo todas as tentativas. O valor deve ser maior que 0 se especificado. O valor padrão é None, o que significa que não há tempo limite.
Tipo de retorno
Exceções
Exemplos
Cancelando mensagens agendadas para serem enviadas no futuro
with servicebus_sender:
servicebus_sender.cancel_scheduled_messages(sequence_nums)
close
Feche os links do manipulador (e a conexão se o manipulador usar uma conexão separada).
Se o manipulador já tiver sido fechado, essa operação não fará nada.
close() -> None
Tipo de retorno
Exceções
create_message_batch
Crie um objeto ServiceBusMessageBatch com o tamanho máximo de todo o conteúdo restrito por max_size_in_bytes. O max_size não deve ser maior que o tamanho máximo permitido da mensagem definido pelo serviço.
create_message_batch(max_size_in_bytes: int | None = None) -> ServiceBusMessageBatch
Parâmetros
O tamanho máximo dos dados de bytes que um objeto ServiceBusMessageBatch pode conter. Por padrão, o valor é determinado pela camada do Barramento de Serviço.
Retornos
Um objeto ServiceBusMessageBatch
Tipo de retorno
Exceções
Exemplos
Criar objeto ServiceBusMessageBatch dentro do tamanho limitado
with servicebus_sender:
batch_message = servicebus_sender.create_message_batch()
batch_message.add_message(ServiceBusMessage("Single message inside batch"))
schedule_messages
Enviar Mensagem ou várias Mensagens a serem enfileiradas em um momento específico. Retorna uma lista dos números de sequência das mensagens enfileiradas.
schedule_messages(messages: MessageTypes, schedule_time_utc: datetime, *, timeout: float | None = None, **kwargs: Any) -> List[int]
Parâmetros
- messages
- Union[ServiceBusMessage, AmqpAnnotatedMessage, List[Union[ServiceBusMessage, AmqpAnnotatedMessage]]]
A mensagem ou lista de mensagens a serem agendadas.
- timeout
- float
O tempo limite total da operação em segundos, incluindo todas as tentativas. O valor deve ser maior que 0 se especificado. O valor padrão é None, o que significa que não há tempo limite.
Retornos
Uma lista dos números de sequência das mensagens enfileiradas.
Tipo de retorno
Exceções
Exemplos
Agendar uma mensagem a ser enviada no futuro
with servicebus_sender:
scheduled_time_utc = datetime.datetime.utcnow() + datetime.timedelta(seconds=30)
scheduled_messages = [ServiceBusMessage("Scheduled message") for _ in range(10)]
sequence_nums = servicebus_sender.schedule_messages(scheduled_messages, scheduled_time_utc)
send_messages
Envia mensagens e bloqueia até que a confirmação seja recebida ou a operação atinge o tempo limite.
Se uma lista de mensagens tiver sido fornecida, tentará enviá-las como um único lote, lançando um ValueError se elas não puderem caber em um único lote.
send_messages(message: MessageTypes | ServiceBusMessageBatch, *, timeout: float | None = None, **kwargs: Any) -> None
Parâmetros
- message
- Union[ServiceBusMessage, ServiceBusMessageBatch, AmqpAnnotatedMessage, List[Union[ServiceBusMessage, AmqpAnnotatedMessage]]]
A mensagem ServiceBus a ser enviada.
O tempo limite total da operação em segundos, incluindo todas as tentativas. O valor deve ser maior que 0 se especificado. O valor padrão é None, o que significa que não há tempo limite.
Tipo de retorno
Exceções
Exemplos
Enviar mensagem.
with servicebus_sender:
message_send = ServiceBusMessage("Hello World")
servicebus_sender.send_messages(message_send)
Atributos
client_identifier
Obtenha o client_identifier ServiceBusSender associado à instância do remetente.
Tipo de retorno
Azure SDK for Python