ServiceBusSender Classe
La classe ServiceBusSender definisce un'interfaccia di alto livello per l'invio di messaggi alla coda o all'argomento bus di servizio di Azure.
Usare il metodo ~azure.servicebus.ServiceBusClient per creare un'istanza get_<queue/topic>_sender
di ServiceBusSender.
- Ereditarietà
-
azure.servicebus._base_handler.BaseHandlerServiceBusSenderazure.servicebus._servicebus_sender.SenderMixinServiceBusSender
Costruttore
ServiceBusSender(fully_qualified_namespace: str, credential: TokenCredential | AzureSasCredential | AzureNamedKeyCredential, *, queue_name: str | None = None, topic_name: str | None = None, **kwargs: Any)
Parametri
- fully_qualified_namespace
- str
Nome host completo per lo spazio dei nomi del bus di servizio. Il formato dello spazio dei nomi è: .servicebus.windows.net.
- credential
- TokenCredential oppure AzureSasCredential oppure AzureNamedKeyCredential
Oggetto credenziale usato per l'autenticazione che implementa un'interfaccia specifica per ottenere i token. Accetta oggetti credenziali generati dalla libreria e dagli oggetti azure-identity che implementano anche il metodo *get_token(self, ambiti) o in alternativa, è possibile specificare anche AzureSasCredential.
- queue_name
- str
Percorso di coda del bus di servizio specifico a cui si connette il client.
- topic_name
- str
Percorso di un argomento specifico del bus di servizio a cui si connette il client.
- logging_enable
- bool
Indica se restituire i log di traccia di rete al logger. L'impostazione predefinita è False.
- transport_type
- TransportType
Tipo di protocollo di trasporto che verrà usato per comunicare con il servizio bus di servizio. Il valore predefinito è TransportType.Amqp.
- http_proxy
- Dict
Impostazioni proxy HTTP. Deve essere un dizionario con le chiavi seguenti: 'proxy_hostname' (valore str) e 'proxy_port' (valore int). Inoltre, le chiavi seguenti possono essere presenti: 'username', 'password'.
- user_agent
- str
Se specificato, verrà aggiunto davanti alla stringa dell'agente utente predefinita.
- client_identifier
- str
Identificatore basato su stringa per identificare in modo univoco l'istanza client. Il bus di servizio lo associa ad alcuni messaggi di errore per semplificare la correlazione degli errori. Se non specificato, verrà generato un ID univoco.
- socket_timeout
- float
Tempo in secondi in cui il socket sottostante sulla connessione deve attendere quando si inviano e ricevono dati prima del timeout. Il valore predefinito è 0.2 per TransportType.Amqp e 1 per TransportType.AmqpOverWebsocket. Se si verificano errori di connessione a causa del timeout di scrittura, potrebbe essere necessario passare un valore maggiore di quello predefinito.
Variabili
- fully_qualified_namespace
- str
Nome host completo per lo spazio dei nomi del bus di servizio. Il formato dello spazio dei nomi è: .servicebus.windows.net.
- entity_name
- str
Nome dell'entità a cui si connette il client.
Metodi
cancel_scheduled_messages |
Annullare uno o più messaggi pianificati in precedenza e ancora in sospeso. |
close |
Chiudere i collegamenti del gestore e la connessione se il gestore usa una connessione separata. Se il gestore è già chiuso, questa operazione non farà nulla. |
create_message_batch |
Creare un oggetto ServiceBusMessageBatch con dimensioni massime di tutti i contenuti vincolati da max_size_in_bytes. Il max_size deve essere diverso dalle dimensioni massime dei messaggi consentiti definiti dal servizio. |
schedule_messages |
Inviare messaggi o più messaggi da eseguire in un momento specifico. Restituisce un elenco dei numeri di sequenza dei messaggi accodati. |
send_messages |
Invia messaggi e blocchi fino al timeout dell'accettazione o dell'operazione. Se è stato fornito un elenco di messaggi, tenta di inviarli come singolo batch, generando un ValoreError se non possono essere inseriti in un singolo batch. |
cancel_scheduled_messages
Annullare uno o più messaggi pianificati in precedenza e ancora in sospeso.
cancel_scheduled_messages(sequence_numbers: int | List[int], *, timeout: float | None = None, **kwargs: Any) -> None
Parametri
- timeout
- float
Il timeout totale dell'operazione in secondi, inclusi tutti i tentativi. Il valore deve essere maggiore di 0 se specificato. Il valore predefinito è Nessuno, ovvero nessun timeout.
Tipo restituito
Eccezioni
Esempio
Annullamento dei messaggi pianificati per l'invio in futuro
with servicebus_sender:
servicebus_sender.cancel_scheduled_messages(sequence_nums)
close
Chiudere i collegamenti del gestore e la connessione se il gestore usa una connessione separata.
Se il gestore è già chiuso, questa operazione non farà nulla.
close() -> None
Tipo restituito
Eccezioni
create_message_batch
Creare un oggetto ServiceBusMessageBatch con dimensioni massime di tutti i contenuti vincolati da max_size_in_bytes. Il max_size deve essere diverso dalle dimensioni massime dei messaggi consentiti definiti dal servizio.
create_message_batch(max_size_in_bytes: int | None = None) -> ServiceBusMessageBatch
Parametri
Dimensioni massime dei dati byte che un oggetto ServiceBusMessageBatch può contenere. Per impostazione predefinita, il valore è determinato dal livello del bus di servizio.
Restituisce
Oggetto ServiceBusMessageBatch
Tipo restituito
Eccezioni
Esempio
Creare un oggetto ServiceBusMessageBatch con dimensioni limitate
with servicebus_sender:
batch_message = servicebus_sender.create_message_batch()
batch_message.add_message(ServiceBusMessage("Single message inside batch"))
schedule_messages
Inviare messaggi o più messaggi da eseguire in un momento specifico. Restituisce un elenco dei numeri di sequenza dei messaggi accodati.
schedule_messages(messages: MessageTypes, schedule_time_utc: datetime, *, timeout: float | None = None, **kwargs: Any) -> List[int]
Parametri
- messages
- Union[ServiceBusMessage, AmqpAnnotatedMessage, List[Union[ServiceBusMessage, AmqpAnnotatedMessage]]]
Messaggio o elenco di messaggi da pianificare.
- timeout
- float
Il timeout totale dell'operazione in secondi, inclusi tutti i tentativi. Il valore deve essere maggiore di 0 se specificato. Il valore predefinito è Nessuno, ovvero nessun timeout.
Restituisce
Elenco dei numeri di sequenza dei messaggi accodati.
Tipo restituito
Eccezioni
Esempio
Pianificare l'invio di un messaggio in 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
Invia messaggi e blocchi fino al timeout dell'accettazione o dell'operazione.
Se è stato fornito un elenco di messaggi, tenta di inviarli come singolo batch, generando un ValoreError se non possono essere inseriti in un singolo batch.
send_messages(message: MessageTypes | ServiceBusMessageBatch, *, timeout: float | None = None, **kwargs: Any) -> None
Parametri
- message
- Union[ServiceBusMessage, ServiceBusMessageBatch, AmqpAnnotatedMessage, List[Union[ServiceBusMessage, AmqpAnnotatedMessage]]]
Messaggio ServiceBus da inviare.
Il timeout totale dell'operazione in secondi, inclusi tutti i tentativi. Il valore deve essere maggiore di 0 se specificato. Il valore predefinito è Nessuno, ovvero nessun timeout.
Tipo restituito
Eccezioni
Esempio
Invia messaggio.
with servicebus_sender:
message_send = ServiceBusMessage("Hello World")
servicebus_sender.send_messages(message_send)
Attributi
client_identifier
Ottenere il client_identifier ServiceBusSender associato all'istanza del mittente.
Tipo restituito
Azure SDK for Python