ServiceBusSender Classe
A classe ServiceBusSender define uma interface de alto nível para enviar mensagens para a Fila de Azure Service Bus ou Tópico.
Utilize o método ~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 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
- TokenCredential 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.
- topic_name
- str
O caminho do Tópico específico do Service Bus ao qual o cliente se liga.
- logging_enable
- bool
Se pretende exportar 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. Tem de ser um dicionário com as seguintes chaves: "proxy_hostname" (valor 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 for especificado, será adicionado à frente da cadeia de agente de utilizador incorporada.
- client_identifier
- str
Um identificador baseado em cadeias para identificar exclusivamente a instância de 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 superior ao 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 que ainda estejam pendentes. |
close |
Feche as ligações do processador (e a ligação se o processador utilizar uma ligação separada). Se o processador já tiver fechado, esta operação não fará nada. |
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 colocar em fila num momento específico. Devolve uma lista dos números de sequência das mensagens colocadas em fila. |
send_messages |
Envia mensagens e blocos até que a confirmação seja recebida ou a operação exceda o limite de tempo. Se tiver sido fornecida uma lista de mensagens, tenta enviá-las como um único lote, lançando um ValueError se não conseguirem caber num único lote. |
cancel_scheduled_messages
Cancele uma ou mais mensagens que tenham sido agendadas anteriormente e que ainda estejam 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 repetições. Se for especificado, o valor tem de ser maior do que 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
with servicebus_sender:
servicebus_sender.cancel_scheduled_messages(sequence_nums)
close
Feche as ligações do processador (e a ligação se o processador utilizar uma ligação separada).
Se o processador já tiver fechado, esta 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 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.
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
Um objeto ServiceBusMessageBatch
Tipo de retorno
Exceções
Exemplos
Criar objeto ServiceBusMessageBatch com um 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 colocar em fila num momento específico. Devolve uma lista dos números de sequência das mensagens colocadas em fila.
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 agendar.
- timeout
- float
O tempo limite total da operação em segundos, incluindo todas as repetições. Se for especificado, o valor tem de ser maior do que 0. O valor predefinido é Nenhum, o que significa que não há tempo limite.
Devoluções
Uma lista dos números de sequência das mensagens em fila.
Tipo de retorno
Exceções
Exemplos
Agendar uma mensagem para 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 blocos até que a confirmação seja recebida ou a operação exceda o limite de tempo.
Se tiver sido fornecida uma lista de mensagens, tenta enviá-las como um único lote, lançando um ValueError se não conseguirem caber num ú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 enviar.
O tempo limite total da operação em segundos, incluindo todas as repetições. Se for especificado, o valor tem de ser maior do que 0. O valor predefinido é Nenhum, 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 a client_identifier ServiceBusSender associada à instância do remetente.
Tipo de retorno
Azure SDK for Python