Partager via


ServiceBusSender Classe

La classe ServiceBusSender définit une interface de haut niveau pour l’envoi de messages à la file d’attente ou à la rubrique Azure Service Bus.

Utilisez la get_<queue/topic>_sender méthode ~azure.servicebus.ServiceBusClient pour créer un instance ServiceBusSender.

Héritage
azure.servicebus._base_handler.BaseHandler
ServiceBusSender
azure.servicebus._servicebus_sender.SenderMixin
ServiceBusSender

Constructeur

ServiceBusSender(fully_qualified_namespace: str, credential: TokenCredential | AzureSasCredential | AzureNamedKeyCredential, *, queue_name: str | None = None, topic_name: str | None = None, **kwargs: Any)

Paramètres

fully_qualified_namespace
str
Obligatoire

Nom d’hôte complet de l’espace de noms Service Bus. Le format de l’espace de noms est . servicebus.windows.net.

credential
TokenCredential ou AzureSasCredential ou AzureNamedKeyCredential
Obligatoire

Objet d’informations d’identification utilisé pour l’authentification qui implémente une interface particulière pour obtenir des jetons. Il accepte les objets d’informations d’identification générés par la bibliothèque d’identité azure et les objets qui implémentent la méthode *get_token(self, scopes), ou une instance AzureSasCredential peut également être fournie.

queue_name
str

Chemin d’accès de la file d’attente Service Bus spécifique à laquelle le client se connecte.

topic_name
str

Chemin d’accès de la rubrique Service Bus spécifique à laquelle le client se connecte.

logging_enable
bool

Indique s’il faut générer des journaux de trace réseau vers l’enregistreur d’événements. La valeur par défaut est False.

transport_type
TransportType

Type de protocole de transport qui sera utilisé pour communiquer avec le service Service Bus. La valeur par défaut est TransportType.Amqp.

http_proxy
Dict

Paramètres du proxy HTTP. Il doit s’agir d’un dictionnaire avec les clés suivantes : « proxy_hostname » (valeur str) et « proxy_port » (valeur int). En outre, les clés suivantes peuvent également être présentes : « nom d’utilisateur », « mot de passe ».

user_agent
str

S’il est spécifié, cela sera ajouté devant la chaîne d’agent utilisateur intégrée.

client_identifier
str

Identificateur basé sur des chaînes permettant d’identifier de manière unique le client instance. Service Bus l’associera à certains messages d’erreur pour faciliter la corrélation des erreurs. S’il n’est pas spécifié, un ID unique est généré.

socket_timeout
float

Durée en secondes pendant laquelle le socket sous-jacent sur la connexion doit attendre lors de l’envoi et de la réception de données avant d’expirer. La valeur par défaut est 0,2 pour TransportType.Amqp et 1 pour TransportType.AmqpOverWebsocket. Si des erreurs de connexion se produisent en raison d’un délai d’attente d’écriture, une valeur supérieure à la valeur par défaut peut être transmise.

Variables

fully_qualified_namespace
str

Nom d’hôte complet de l’espace de noms Service Bus. Le format de l’espace de noms est . servicebus.windows.net.

entity_name
str

Nom de l’entité à laquelle le client se connecte.

Méthodes

cancel_scheduled_messages

Annulez un ou plusieurs messages qui ont déjà été planifiés et qui sont toujours en attente.

close

Fermez les liens du gestionnaire (et la connexion si le gestionnaire utilise une connexion distincte).

Si le gestionnaire est déjà fermé, cette opération ne fera rien.

create_message_batch

Créez un objet ServiceBusMessageBatch dont la taille maximale de tout le contenu est limitée par max_size_in_bytes. La max_size ne doit pas être supérieure à la taille maximale autorisée des messages définie par le service.

schedule_messages

Envoyer un message ou plusieurs messages à mettre en file d’attente à un moment spécifique. Retourne une liste des numéros de séquence des messages mis en file d’attente.

send_messages

Envoie le message et bloque jusqu’à ce que l’accusé de réception soit reçu ou que l’opération expire.

Si une liste de messages a été fournie, tente de les envoyer sous la forme d’un lot unique, en lançant un objet ValueError s’ils ne peuvent pas tenir dans un seul lot.

cancel_scheduled_messages

Annulez un ou plusieurs messages qui ont déjà été planifiés et qui sont toujours en attente.

cancel_scheduled_messages(sequence_numbers: int | List[int], *, timeout: float | None = None, **kwargs: Any) -> None

Paramètres

sequence_numbers
int ou list[int]
Obligatoire

Numéros de séquence des messages planifiés.

timeout
float

Délai d’expiration total de l’opération en secondes, y compris toutes les nouvelles tentatives. La valeur doit être supérieure à 0 si elle est spécifiée. La valeur par défaut est None, c’est-à-dire aucun délai d’attente.

Type de retour

Exceptions

azure.servicebus.exceptions.ServiceBusError if messages cancellation failed due to message alreadycancelled or enqueued.

Exemples

Annulation des messages dont l’envoi est prévu à l’avenir


   with servicebus_sender:
       servicebus_sender.cancel_scheduled_messages(sequence_nums)

close

Fermez les liens du gestionnaire (et la connexion si le gestionnaire utilise une connexion distincte).

Si le gestionnaire est déjà fermé, cette opération ne fera rien.

close() -> None

Type de retour

Exceptions

azure.servicebus.exceptions.ServiceBusError if messages cancellation failed due to message alreadycancelled or enqueued.

create_message_batch

Créez un objet ServiceBusMessageBatch dont la taille maximale de tout le contenu est limitée par max_size_in_bytes. La max_size ne doit pas être supérieure à la taille maximale autorisée des messages définie par le service.

create_message_batch(max_size_in_bytes: int | None = None) -> ServiceBusMessageBatch

Paramètres

max_size_in_bytes
Optional[int]
valeur par défaut: None

Taille maximale des données octets qu’un objet ServiceBusMessageBatch peut contenir. Par défaut, la valeur est déterminée par votre niveau Service Bus.

Retours

Objet ServiceBusMessageBatch

Type de retour

Exceptions

azure.servicebus.exceptions.ServiceBusError if messages cancellation failed due to message alreadycancelled or enqueued.

Exemples

Créer un objet ServiceBusMessageBatch de taille limitée


   with servicebus_sender:
       batch_message = servicebus_sender.create_message_batch()
       batch_message.add_message(ServiceBusMessage("Single message inside batch"))

schedule_messages

Envoyer un message ou plusieurs messages à mettre en file d’attente à un moment spécifique. Retourne une liste des numéros de séquence des messages mis en file d’attente.

schedule_messages(messages: MessageTypes, schedule_time_utc: datetime, *, timeout: float | None = None, **kwargs: Any) -> List[int]

Paramètres

messages
Union[ServiceBusMessage, AmqpAnnotatedMessage, List[Union[ServiceBusMessage, AmqpAnnotatedMessage]]]
Obligatoire

Message ou liste de messages à planifier.

schedule_time_utc
datetime
Obligatoire

Date et heure utc pour mettre en file d’attente les messages.

timeout
float

Délai d’expiration total de l’opération en secondes, y compris toutes les nouvelles tentatives. La valeur doit être supérieure à 0 si elle est spécifiée. La valeur par défaut est None, c’est-à-dire aucun délai d’attente.

Retours

Liste des numéros de séquence des messages en file d’attente.

Type de retour

Exceptions

azure.servicebus.exceptions.ServiceBusError if messages cancellation failed due to message alreadycancelled or enqueued.

Exemples

Planifier l’envoi d’un message à l’avenir


   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

Envoie le message et bloque jusqu’à ce que l’accusé de réception soit reçu ou que l’opération expire.

Si une liste de messages a été fournie, tente de les envoyer sous la forme d’un lot unique, en lançant un objet ValueError s’ils ne peuvent pas tenir dans un seul lot.

send_messages(message: MessageTypes | ServiceBusMessageBatch, *, timeout: float | None = None, **kwargs: Any) -> None

Paramètres

timeout
Optional[float]

Délai d’expiration total de l’opération en secondes, y compris toutes les nouvelles tentatives. La valeur doit être supérieure à 0 si elle est spécifiée. La valeur par défaut est None, c’est-à-dire aucun délai d’attente.

Type de retour

Exceptions

azure.servicebus.exceptions.OperationTimeoutError if sending times out.

Exemples

Envoyer un message.


   with servicebus_sender:
       message_send = ServiceBusMessage("Hello World")
       servicebus_sender.send_messages(message_send)

Attributs

client_identifier

Obtenez le client_identifier ServiceBusSender associé au instance de l’expéditeur.

Type de retour

str