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.aio.ServiceBusClient per creare un'istanza get_<queue/topic>_sender
di ServiceBusSender.
- Ereditarietà
-
azure.servicebus.aio._base_handler_async.BaseHandlerServiceBusSenderazure.servicebus._servicebus_sender.SenderMixinServiceBusSender
Costruttore
ServiceBusSender(fully_qualified_namespace: str, credential: AsyncTokenCredential | 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
- AsyncTokenCredential 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. È possibile fornire solo uno dei queue_name o topic_name.
- topic_name
- str
Percorso di un argomento specifico del bus di servizio a cui si connette il client. È possibile fornire solo uno dei queue_name o topic_name.
- 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 la connessione del gestore. Se il gestore è già chiuso, questa operazione non farà nulla. È possibile passare un'eccezione facoltativa per indicare che il gestore è stato arrestato a causa di un errore. |
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 dal servizio. 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.
async 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
async with servicebus_sender:
await servicebus_sender.cancel_scheduled_messages(sequence_nums)
close
Chiudere la connessione del gestore.
Se il gestore è già chiuso, questa operazione non farà nulla. È possibile passare un'eccezione facoltativa per indicare che il gestore è stato arrestato a causa di un errore.
async 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.
async 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
async with servicebus_sender:
batch_message = await 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 dal servizio. Restituisce un elenco dei numeri di sequenza dei messaggi accodati.
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]
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
Numero di sequenza dei messaggi inqueued.
Tipo restituito
Eccezioni
Esempio
Pianificare l'invio di un messaggio in 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
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.
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
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.
async with servicebus_sender:
message_send = ServiceBusMessage("Hello World")
await servicebus_sender.send_messages(message_send)
Attributi
client_identifier
Ottenere l'identificatore client ServiceBusSender associato all'istanza del mittente.
Tipo restituito
Azure SDK for Python