ServiceBusSender Classe
A classe ServiceBusSender define uma interface de alto nível para enviar mensagens para a Fila ou Tópico Azure Service Bus.
Utilize o método ~azure.servicebus.aio.ServiceBusClient get_<queue/topic>_sender
para criar uma instância do ServiceBusSender.
- Herança
-
azure.servicebus.aio._base_handler_async.BaseHandlerServiceBusSenderazure.servicebus._servicebus_sender.SenderMixinServiceBusSender
Construtor
ServiceBusSender(fully_qualified_namespace: str, credential: AsyncTokenCredential | AzureSasCredential | AzureNamedKeyCredential, *, queue_name: str | None = None, topic_name: str | None = None, **kwargs: Any)
Parâmetros
- fully_qualified_namespace
- str
O nome de anfitrião completamente qualificado para o espaço de nomes do Service Bus. O formato do espaço de nomes é: .servicebus.windows.net.
- credential
- AsyncTokenCredential ou AzureSasCredential ou AzureNamedKeyCredential
O objeto de credencial utilizado para autenticação que implementa uma interface específica para obter tokens. Aceita objetos de credenciais gerados pela biblioteca de identidades do azure e objetos que implementam o método *get_token(auto, âmbitos) ou, em alternativa, também pode ser fornecido um AzureSasCredential.
- queue_name
- str
O caminho da fila específica do Service Bus à qual o cliente se liga. Só pode ser fornecido um dos queue_name ou topic_name.
- topic_name
- str
O caminho do Tópico específico do Service Bus ao qual o cliente se liga. Só pode ser fornecido um dos queue_name ou topic_name.
- logging_enable
- bool
Se pretende gerar registos de rastreio de rede para o logger. A predefinição é Falso.
- transport_type
- TransportType
O tipo de protocolo de transporte que será utilizado para comunicar com o serviço Service Bus. A predefinição é TransportType.Amqp.
- http_proxy
- Dict
Definições de proxy HTTP. Este tem de ser um dicionário com as seguintes chaves: "proxy_hostname" (valor de str) e "proxy_port" (valor int). Além disso, também podem estar presentes as seguintes chaves: "nome de utilizador", "palavra-passe".
- user_agent
- str
Se especificado, este procedimento será adicionado à frente da cadeia de agente de utilizador incorporada.
- client_identifier
- str
Um identificador baseado em cadeias para identificar exclusivamente a instância do cliente. O Service Bus irá associá-lo a algumas mensagens de erro para facilitar a correlação de erros. Se não for especificado, será gerado um ID exclusivo.
- socket_timeout
- float
O tempo em segundos que o socket subjacente na ligação deve aguardar ao enviar e receber dados antes de exceder o tempo limite. O valor predefinido é 0,2 para TransportType.Amqp e 1 para TransportType.AmqpOverWebsocket. Se estiverem a ocorrer erros de ligação devido ao tempo limite de escrita, poderá ser necessário transmitir um valor maior do que o predefinido.
Variáveis
- fully_qualified_namespace
- str
O nome de anfitrião completamente qualificado para o espaço de nomes do Service Bus. O formato do espaço de nomes é: .servicebus.windows.net.
- entity_name
- str
O nome da entidade à qual o cliente se liga.
Métodos
cancel_scheduled_messages |
Cancele uma ou mais mensagens que tenham sido agendadas anteriormente e ainda estejam pendentes. |
close |
Feche a ligação do processador. Se o processador já tiver fechado, esta operação não fará nada. Pode ser transmitida uma exceção opcional para indicar que o processador foi encerrado devido a um erro. |
create_message_batch |
Crie um objeto ServiceBusMessageBatch com o tamanho máximo de todo o conteúdo limitado por max_size_in_bytes. O max_size não deve ser maior do que o tamanho máximo de mensagens permitido definido pelo serviço. |
schedule_messages |
Enviar Mensagem ou várias Mensagens a serem colocadas em fila num momento específico pelo serviço. Devolve uma lista dos números de sequência das mensagens em fila. |
send_messages |
Envia mensagens e blocos até que a confirmação seja recebida ou a operação exceda o tempo limite. Se tiver sido fornecida uma lista de mensagens, tenta enviá-las como um único lote, lançando um ValueError se não conseguir caber num único lote. |
cancel_scheduled_messages
Cancele uma ou mais mensagens que tenham sido agendadas anteriormente e ainda estejam pendentes.
async 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 repetições. Se especificado, o valor tem de ser superior a 0. O valor predefinido é Nenhum, o que significa que não há tempo limite.
Tipo de retorno
Exceções
Exemplos
Cancelar mensagens agendadas para serem enviadas no futuro
async with servicebus_sender:
await servicebus_sender.cancel_scheduled_messages(sequence_nums)
close
Feche a ligação do processador.
Se o processador já tiver fechado, esta operação não fará nada. Pode ser transmitida uma exceção opcional para indicar que o processador foi encerrado devido a um erro.
async close() -> None
Tipo de retorno
Exceções
create_message_batch
Crie um objeto ServiceBusMessageBatch com o tamanho máximo de todo o conteúdo limitado por max_size_in_bytes. O max_size não deve ser maior do que o tamanho máximo de mensagens permitido definido pelo serviço.
async 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 predefinição, o valor é determinado pelo escalão do Service Bus.
Devoluções
Objeto ServiceBusMessageBatch
Tipo de retorno
Exceções
Exemplos
Criar objeto ServiceBusMessageBatch com um tamanho limitado
async with servicebus_sender:
batch_message = await servicebus_sender.create_message_batch()
batch_message.add_message(ServiceBusMessage("Single message inside batch"))
schedule_messages
Enviar Mensagem ou várias Mensagens a serem colocadas em fila num momento específico pelo serviço. Devolve uma lista dos números de sequência das mensagens em fila.
async schedule_messages(messages: Mapping[str, Any] | ServiceBusMessage | AmqpAnnotatedMessage | Iterable[Mapping[str, Any]] | Iterable[ServiceBusMessage] | Iterable[AmqpAnnotatedMessage], 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 agendar.
- timeout
- float
O tempo limite total da operação em segundos, incluindo todas as repetições. Se especificado, o valor tem de ser superior a 0. O valor predefinido é Nenhum, o que significa que não há tempo limite.
Devoluções
Os números de sequência das mensagens em fila.
Tipo de retorno
Exceções
Exemplos
Agendar uma mensagem a enviar no futuro
async with servicebus_sender:
scheduled_time_utc = datetime.datetime.utcnow() + datetime.timedelta(seconds=30)
scheduled_messages = [ServiceBusMessage("Scheduled message") for _ in range(10)]
sequence_nums = await servicebus_sender.schedule_messages(scheduled_messages, scheduled_time_utc)
send_messages
Envia mensagens e blocos até que a confirmação seja recebida ou a operação exceda o tempo limite.
Se tiver sido fornecida uma lista de mensagens, tenta enviá-las como um único lote, lançando um ValueError se não conseguir caber num único lote.
async send_messages(message: Mapping[str, Any] | ServiceBusMessage | AmqpAnnotatedMessage | Iterable[Mapping[str, Any]] | Iterable[ServiceBusMessage] | Iterable[AmqpAnnotatedMessage] | ServiceBusMessageBatch, *, timeout: float | None = None, **kwargs: Any) -> None
Parâmetros
- message
- Union[ServiceBusMessage, ServiceBusMessageBatch, AmqpAnnotatedMessage, List[Union[ServiceBusMessage, AmqpAnnotatedMessage]]]
A mensagem ServiceBus a enviar.
O tempo limite total da operação em segundos, incluindo todas as repetições. Se especificado, o valor tem de ser superior a 0. O valor predefinido é Nenhum, o que significa que não há tempo limite.
Tipo de retorno
Exceções
Exemplos
Enviar mensagem.
async with servicebus_sender:
message_send = ServiceBusMessage("Hello World")
await servicebus_sender.send_messages(message_send)
Atributos
client_identifier
Obtenha o identificador de cliente ServiceBusSender associado à instância do remetente.
Tipo de retorno
Azure SDK for Python
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários