EventHubProducerClient Classe
La classe EventHubProducerClient définit une interface de haut niveau pour l’envoi d’événements au service Azure Event Hubs.
- Héritage
-
azure.eventhub.aio._client_base_async.ClientBaseAsyncEventHubProducerClient
Constructeur
EventHubProducerClient(fully_qualified_namespace: str, eventhub_name: str, credential: CredentialTypes, *, buffered_mode: bool = False, on_error: Callable[[List[EventData | AmqpAnnotatedMessage], str | None, Exception], Awaitable[None]] | None = None, on_success: Callable[[List[EventData | AmqpAnnotatedMessage], str | None], Awaitable[None]] | None = None, max_buffer_length: int | None = None, max_wait_time: float | None = None, **kwargs: Any)
Paramètres
- fully_qualified_namespace
- str
Nom d’hôte complet de l’espace de noms Event Hubs. Cela est susceptible d’être similaire à .servicebus.windows.net
- eventhub_name
- str
Chemin d’accès du hub d’événements spécifique auquel connecter le client.
- credential
- AsyncTokenCredential ou AzureSasCredential ou AzureNamedKeyCredential
Objet d’informations d’identification utilisé pour l’authentification qui implémente une interface particulière pour obtenir des jetons. Il accepte EventHubSharedKeyCredentialles objets d’informations d’identification ou générés par la bibliothèque d’identité azure et les objets qui implémentent la méthode *get_token(self, scopes).
- buffered_mode
- bool
Si la valeur est True, le client producteur collecte les événements dans une mémoire tampon, effectue un traitement par lot efficace, puis publie. La valeur par défaut est FALSE.
Rappel à appeler une fois qu’un lot a été publié avec succès. Le rappel prend deux paramètres :
événements : liste des événements qui ont été publiés avec succès
partition_id : ID de partition sur lequel les événements de la liste ont été publiés.
La fonction de rappel doit être définie comme suit : on_success(events, partition_id). Obligatoire lorsque buffered_mode a la valeur True alors que facultatif si buffered_mode a la valeur False.
Le rappel à appeler une fois qu’un lot n’a pas pu être publié. Obligatoire lorsque dans buffered_mode a la valeur True alors que facultatif si buffered_mode a la valeur False. La fonction de rappel doit être définie comme suit : on_error(events, partition_id, error) où :
événements : liste des événements qui n’ont pas pu être publiés,
partition_id : ID de partition dans lequel les événements de la liste ont été tentés d’être publiés et
error : exception liée à l’échec d’envoi.
Si buffered_mode a la valeur False, on_error rappel est facultatif et les erreurs sont gérées comme suit :
Si un rappel on_error est passé pendant l’instanciation du client producteur,
ensuite, les informations d’erreur sont transmises au rappel on_error , qui sera ensuite appelé.
Si un rappel on_error n’est pas passé pendant l’instanciation du client,
l’erreur est alors déclenchée par défaut.
Si buffered_mode a la valeur True, on_error rappel est requis et les erreurs sont gérées comme suit :
Si les événements ne parviennent pas à mettre en file d’attente dans le délai d’attente donné, une erreur est directement générée.
Si les événements ne parviennent pas à être envoyés après la mise en file d’attente, le rappel on_error est appelé.
- max_buffer_length
- int
Mode mis en mémoire tampon uniquement. Le nombre total d’événements par partition pouvant être mis en mémoire tampon avant qu’un vidage soit déclenché. La valeur par défaut est 1500 en mode mis en mémoire tampon.
Mode mis en mémoire tampon uniquement. Durée d’attente avant la publication d’un lot avec des événements dans la mémoire tampon. La valeur par défaut est 1 en mode mis en mémoire tampon.
- 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.
- auth_timeout
- float
Temps en secondes d’attente pour qu’un jeton soit autorisé par le service. La valeur par défaut est 60 secondes. Si la valeur est 0, aucun délai d’attente n’est appliqué à partir du client.
- user_agent
- str
Si elle est spécifiée, elle est ajoutée devant la chaîne de l’agent utilisateur.
- retry_total
- int
Nombre total de tentatives de restauration d’une opération ayant échoué en cas d’erreur. La valeur par défaut est 3.
- retry_backoff_factor
- float
Facteur d’annulation à appliquer entre les tentatives après la deuxième tentative (la plupart des erreurs sont résolues immédiatement par un deuxième essai sans délai). En mode fixe, la stratégie de nouvelle tentative est toujours mise en veille pour {facteur d’arrêt}. En mode « exponentiel », la stratégie de nouvelle tentative est mise en veille pendant : {facteur d’interruption} * (2 ** ({nombre de nouvelles tentatives totales} - 1)) secondes. Si le backoff_factor est 0,1, la nouvelle tentative est mise en veille pour [0,0, 0,2s, 0,4s, ...] entre les nouvelles tentatives. La valeur par défaut est 0,8.
- retry_backoff_max
- float
Temps d’arrêt maximal. La valeur par défaut est 120 secondes (2 minutes).
- retry_mode
- str
Comportement de retard entre les tentatives de nouvelle tentative. Les valeurs prises en charge sont « fixes » ou « exponentielles », où la valeur par défaut est « exponentielle ».
- idle_timeout
- float
Délai d’expiration, en secondes, après quoi ce client ferme la connexion sous-jacente en l’absence d’activité. Par défaut, la valeur est None, ce qui signifie que le client ne s’arrêtera pas en raison d’une inactivité, sauf si le service l’a initié.
- transport_type
- TransportType
Type de protocole de transport qui sera utilisé pour communiquer avec le service Event Hubs. La valeur par défaut est TransportType.Amqp , auquel cas le port 5671 est utilisé. Si le port 5671 n’est pas disponible/bloqué dans l’environnement réseau, TransportType.AmqpOverWebsocket peut être utilisé à la place, qui utilise le port 443 pour la communication.
- 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 ».
Adresse de point de terminaison personnalisée à utiliser pour établir une connexion au service Event Hubs, ce qui permet aux demandes réseau d’être acheminées via toutes les passerelles d’application ou d’autres chemins nécessaires à l’environnement hôte. La valeur par défaut est None. Le format est « sb://< custom_endpoint_hostname> :<custom_endpoint_port> ». Si le port n’est pas spécifié dans le custom_endpoint_address, le port 443 est utilisé par défaut.
Chemin d’accès au fichier CA_BUNDLE personnalisé du certificat SSL utilisé pour authentifier l’identité du point de terminaison de connexion. La valeur par défaut est None, auquel cas certifi.where() sera utilisé.
- uamqp_transport
- bool
Indique s’il faut utiliser la bibliothèque uamqp comme transport sous-jacent. La valeur par défaut est False et la bibliothèque PURE PYTHON AMQP sera utilisée comme transport sous-jacent.
- 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 EventHubsConnectionError se produisent en raison d’un délai d’écriture, une valeur supérieure à la valeur par défaut peut être transmise. Il s’agit de scénarios d’utilisation avancés et la valeur par défaut doit normalement être suffisante.
Exemples
Créez une instance de EventHubProducerClient.
import os
from azure.eventhub.aio import EventHubProducerClient, EventHubSharedKeyCredential
fully_qualified_namespace = os.environ['EVENT_HUB_HOSTNAME']
eventhub_name = os.environ['EVENT_HUB_NAME']
shared_access_policy = os.environ['EVENT_HUB_SAS_POLICY']
shared_access_key = os.environ['EVENT_HUB_SAS_KEY']
producer = EventHubProducerClient(fully_qualified_namespace=fully_qualified_namespace,
eventhub_name=eventhub_name,
credential=EventHubSharedKeyCredential(shared_access_policy, shared_access_key))
Méthodes
close |
Fermez la connexion et les liens AMQP sous-jacents du client Producteur. |
create_batch |
Créez un objet EventDataBatch dont la taille maximale de tout le contenu est limitée par max_size_in_bytes. La max_size_in_bytes ne doit pas être supérieure à la taille maximale autorisée des messages définie par le service. |
flush |
Mode mis en mémoire tampon uniquement. Vider les événements dans la mémoire tampon à envoyer immédiatement si le client fonctionne en mode mis en mémoire tampon. |
from_connection_string |
Créez un EventHubProducerClient à partir d’un chaîne de connexion. |
get_buffered_event_count |
Nombre d’événements mis en mémoire tampon et en attente de publication pour une partition donnée. Retourne Aucun en mode non mis en mémoire tampon. REMARQUE : La mémoire tampon d’événements est traitée dans une coroutine d’arrière-plan. Par conséquent, le nombre d’événements dans la mémoire tampon signalé par cette API doit être considéré comme une approximation et n’est recommandé que pour le débogage. Pour un ID de partition pour lequel aucun événement n’est mis en mémoire tampon, 0 est retourné, que cet ID de partition existe réellement dans le hub d’événements. |
get_eventhub_properties |
Obtient les propriétés du hub d’événements. Les clés dans le dictionnaire retourné sont les suivantes :
|
get_partition_ids |
Obtenez les ID de partition de l’Event Hub. |
get_partition_properties |
Obtient les propriétés de la partition spécifiée. Les clés du dictionnaire de propriétés sont les suivantes :
|
send_batch |
Envoie un lot de données d’événement. Par défaut, la méthode est bloquée jusqu’à ce que l’accusé de réception soit reçu ou que l’opération expire. Si EventHubProducerClient est configuré pour s’exécuter en mode mis en mémoire tampon, la méthode met en file d’attente les événements dans la mémoire tampon locale et retourne. Le producteur effectue l’envoi automatique en arrière-plan. Si buffered_mode a la valeur False, on_error rappel est facultatif et les erreurs sont gérées comme suit :
Si buffered_mode a la valeur True, on_error rappel est requis et les erreurs sont gérées comme suit :
En mode mis en mémoire tampon, l’envoi d’un lot reste intact et envoyé en tant qu’unité unique. Le lot ne sera pas réorganisé. Cela peut entraîner l’inefficacité de l’envoi d’événements. Si vous envoyez une liste finie d’EventData ou d’AmqpAnnotatedMessage et que vous savez qu’elle se trouve dans la limite de taille d’image du hub d’événements, vous pouvez l’envoyer avec un appel send_batch . Sinon, utilisez create_batch pour créer EventDataBatch et ajouter EventData ou AmqpAnnotatedMessage dans le lot un par un jusqu’à la limite de taille, puis appelez cette méthode pour envoyer le lot. |
send_event |
Envoie des données d’événement. Par défaut, la méthode est bloquée jusqu’à ce que l’accusé de réception soit reçu ou que l’opération expire. Si EventHubProducerClient est configuré pour s’exécuter en mode mis en mémoire tampon, la méthode met l’événement en file d’attente dans la mémoire tampon locale et retourne. Le producteur effectue automatiquement le traitement par lots et l’envoi en arrière-plan. Si buffered_mode a la valeur False, on_error rappel est facultatif et les erreurs sont gérées comme suit : * Si un rappel on_error est passé pendant l’instanciation du client producteur,
Si buffered_mode a la valeur True, on_error rappel est requis et les erreurs sont gérées comme suit : * Si les événements ne parviennent pas à se mettre en file d’attente dans le délai d’attente donné, une erreur est directement générée.
|
close
Fermez la connexion et les liens AMQP sous-jacents du client Producteur.
async close(*, flush: bool = True, **kwargs: Any) -> None
Paramètres
- flush
- bool
Mode mis en mémoire tampon uniquement. Si la valeur est True, les événements de la mémoire tampon sont envoyés immédiatement. La valeur par défaut est True.
Mode mis en mémoire tampon uniquement. Délai d’attente pour fermer le producteur. La valeur par défaut est None, ce qui signifie aucun délai d’attente.
Type de retour
Exceptions
Si une erreur s’est produite lors du vidage de la mémoire tampon si le vidage est défini sur True ou lors de la fermeture des connexions AMQP sous-jacentes en mode mis en mémoire tampon.
Exemples
Fermez le gestionnaire.
import os
from azure.eventhub.aio import EventHubProducerClient
from azure.eventhub import EventData
event_hub_connection_str = os.environ['EVENT_HUB_CONN_STR']
eventhub_name = os.environ['EVENT_HUB_NAME']
producer = EventHubProducerClient.from_connection_string(
conn_str=event_hub_connection_str,
eventhub_name=eventhub_name # EventHub name should be specified if it doesn't show up in connection string.
)
try:
event_data_batch = await producer.create_batch()
while True:
try:
event_data_batch.add(EventData('Message inside EventBatchData'))
except ValueError:
# The EventDataBatch object reaches its max_size.
# You can send the full EventDataBatch object and create a new one here.
break
await producer.send_batch(event_data_batch)
finally:
# Close down the producer handler.
await producer.close()
create_batch
Créez un objet EventDataBatch dont la taille maximale de tout le contenu est limitée par max_size_in_bytes.
La max_size_in_bytes ne doit pas être supérieure à la taille maximale autorisée des messages définie par le service.
async create_batch(*, partition_id: str | None = None, partition_key: str | None = None, max_size_in_bytes: int | None = None) -> EventDataBatch
Type de retour
Exceptions
Si une erreur s’est produite lors du vidage de la mémoire tampon si le vidage est défini sur True ou lors de la fermeture des connexions AMQP sous-jacentes en mode mis en mémoire tampon.
Exemples
Créer un objet EventDataBatch de taille limitée
from azure.eventhub import EventData
event_data_batch = await producer.create_batch()
while True:
try:
event_data_batch.add(EventData('Message inside EventBatchData'))
except ValueError:
# The EventDataBatch object reaches its max_size.
# You can send the full EventDataBatch object and create a new one here.
break
flush
Mode mis en mémoire tampon uniquement. Vider les événements dans la mémoire tampon à envoyer immédiatement si le client fonctionne en mode mis en mémoire tampon.
async flush(**kwargs: Any) -> None
Paramètres
Délai d’expiration pour vider les événements mis en mémoire tampon, la valeur par défaut est None, ce qui signifie aucun délai d’expiration.
Type de retour
Exceptions
Si le producteur ne parvient pas à vider la mémoire tampon dans le délai d’expiration donné en mode mis en mémoire tampon.
from_connection_string
Créez un EventHubProducerClient à partir d’un chaîne de connexion.
from_connection_string(conn_str: str, *, eventhub_name: str | None = None, buffered_mode: bool = False, on_error: Callable[[List[EventData | AmqpAnnotatedMessage], str | None, Exception], Awaitable[None]] | None = None, on_success: Callable[[List[EventData | AmqpAnnotatedMessage], str | None], Awaitable[None]] | None = None, max_buffer_length: int | None = None, max_wait_time: float | None = None, logging_enable: bool = False, http_proxy: Dict[str, str | int] | None = None, auth_timeout: float = 60, user_agent: str | None = None, retry_total: int = 3, transport_type: TransportType = TransportType.Amqp, **kwargs: Any) -> EventHubProducerClient
Paramètres
- eventhub_name
- str
Chemin d’accès du hub d’événements spécifique auquel connecter le client.
- buffered_mode
- bool
Si la valeur est True, le client producteur collecte les événements dans une mémoire tampon, effectue un traitement par lot, puis publie. La valeur par défaut est FALSE.
Rappel à appeler une fois qu’un lot a été correctement publié. Le rappel prend deux paramètres :
events : liste des événements qui ont été publiés avec succès
partition_id : ID de partition sur lequel les événements de la liste ont été publiés.
La fonction de rappel doit être définie comme suit : on_success(events, partition_id) . Elle est obligatoire lorsque buffered_mode a la valeur True alors que facultatif si buffered_mode a la valeur False.
Rappel à appeler une fois qu’un lot n’a pas pu être publié. La fonction de rappel doit être définie comme suit : on_error(events, partition_id, error), où :
events : liste des événements qui n’ont pas pu être publiés,
partition_id : ID de partition dans lequel les événements de la liste ont été tentés d’être publiés et
error : exception liée à l’échec d’envoi.
Si buffered_mode a la valeur False, on_error rappel est facultatif et les erreurs sont gérées comme suit :
Si un rappel on_error est passé pendant l’instanciation du client producteur,
ensuite, les informations d’erreur sont passées au rappel on_error , qui sera ensuite appelé.
Si un rappel on_error n’est pas passé pendant l’instanciation du client,
l’erreur est alors déclenchée par défaut.
Si buffered_mode a la valeur True, on_error rappel est requis et les erreurs sont gérées comme suit :
Si les événements ne parviennent pas à se mettre en file d’attente dans le délai d’expiration donné, une erreur est directement générée.
Si les événements ne parviennent pas à être envoyés après la mise en file d’attente, le rappel on_error est appelé.
- max_buffer_length
- int
Mode mis en mémoire tampon uniquement. Nombre total d’événements par partition pouvant être mis en mémoire tampon avant qu’un vidage ne soit déclenché. La valeur par défaut est 1 500 en mode mis en mémoire tampon.
Mode mis en mémoire tampon uniquement. Durée d’attente avant la publication d’un lot avec des événements dans la mémoire tampon. La valeur par défaut est 1 en mode mis en mémoire tampon.
- logging_enable
- bool
Indique si les journaux de trace réseau doivent être générés dans l’enregistreur d’événements. La valeur par défaut est False.
- 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 ».
- auth_timeout
- float
Délai en secondes d’attente pour qu’un jeton soit autorisé par le service. La valeur par défaut est 60 secondes. Si la valeur est 0, aucun délai d’expiration n’est appliqué à partir du client.
- user_agent
- str
Si elle est spécifiée, elle est ajoutée devant la chaîne de l’agent utilisateur.
- retry_total
- int
Nombre total de tentatives de restauration d’une opération ayant échoué lorsqu’une erreur se produit. La valeur par défaut est 3.
- retry_backoff_factor
- float
Facteur d’interruption à appliquer entre les tentatives après la deuxième tentative (la plupart des erreurs sont résolues immédiatement par un deuxième essai sans délai). En mode fixe, la stratégie de nouvelle tentative est toujours mise en veille pour {facteur d’interruption}. En mode « exponentiel », la stratégie de nouvelle tentative est mise en veille pendant : {facteur d’interruption} * (2 ** ({nombre de nouvelles tentatives totales} - 1)) secondes. Si la backoff_factor est 0.1, la nouvelle tentative est mise en veille pour [0.0s, 0.2s, 0.4s, ...] entre les nouvelles tentatives. La valeur par défaut est 0,8.
- retry_backoff_max
- float
Temps d’arrêt maximal. La valeur par défaut est 120 secondes (2 minutes).
- retry_mode
- str
Comportement de délai entre les tentatives de nouvelle tentative. Les valeurs prises en charge sont « fixes » ou « exponentielles », où la valeur par défaut est « exponentielle ».
- idle_timeout
- float
Délai d’expiration, en secondes, après lequel ce client ferme la connexion sous-jacente en l’absence d’activité. Par défaut, la valeur est None, ce qui signifie que le client ne s’arrêtera pas en raison de l’inactivité, sauf si le service l’a initié.
- transport_type
- TransportType
Type de protocole de transport qui sera utilisé pour communiquer avec le service Event Hubs. La valeur par défaut est TransportType.Amqp , auquel cas le port 5671 est utilisé. Si le port 5671 est indisponible/bloqué dans l’environnement réseau, TransportType.AmqpOverWebsocket peut être utilisé à la place, qui utilise le port 443 pour la communication.
Adresse de point de terminaison personnalisée à utiliser pour établir une connexion au service Event Hubs, ce qui permet aux demandes réseau d’être routées via toutes les passerelles Application Gateway ou autres chemins nécessaires pour l’environnement hôte. La valeur par défaut est None. Le format est « sb://< custom_endpoint_hostname> :<custom_endpoint_port> ». Si le port n’est pas spécifié dans le custom_endpoint_address, le port 443 est utilisé par défaut.
Chemin d’accès au fichier de CA_BUNDLE personnalisé du certificat SSL utilisé pour authentifier l’identité du point de terminaison de connexion. La valeur par défaut est None, auquel cas certifi.where() sera utilisé.
- uamqp_transport
- bool
Indique s’il faut utiliser la bibliothèque uamqp comme transport sous-jacent. La valeur par défaut est False et la bibliothèque PURE PYTHON AMQP sera utilisée comme transport sous-jacent.
Type de retour
Exceptions
Si une erreur s’est produite lors du vidage de la mémoire tampon si le vidage est défini sur True ou lors de la fermeture des connexions AMQP sous-jacentes en mode mis en mémoire tampon.
Exemples
Créez une instance de EventHubProducerClient à partir de chaîne de connexion.
import os
from azure.eventhub.aio import EventHubProducerClient
event_hub_connection_str = os.environ['EVENT_HUB_CONN_STR']
eventhub_name = os.environ['EVENT_HUB_NAME']
producer = EventHubProducerClient.from_connection_string(
conn_str=event_hub_connection_str,
eventhub_name=eventhub_name # EventHub name should be specified if it doesn't show up in connection string.
)
get_buffered_event_count
Nombre d’événements mis en mémoire tampon et en attente de publication pour une partition donnée. Retourne Aucun en mode non mis en mémoire tampon. REMARQUE : La mémoire tampon d’événements est traitée dans une coroutine d’arrière-plan. Par conséquent, le nombre d’événements dans la mémoire tampon signalé par cette API doit être considéré comme une approximation et n’est recommandé que pour le débogage. Pour un ID de partition pour lequel aucun événement n’est mis en mémoire tampon, 0 est retourné, que cet ID de partition existe réellement dans le hub d’événements.
get_buffered_event_count(partition_id: str) -> int | None
Paramètres
Type de retour
Exceptions
Si une erreur s’est produite lors du vidage de la mémoire tampon si le vidage est défini sur True ou lors de la fermeture des connexions AMQP sous-jacentes en mode mis en mémoire tampon.
get_eventhub_properties
Obtient les propriétés du hub d’événements.
Les clés dans le dictionnaire retourné sont les suivantes :
eventhub_name (str)
created_at (UTC datetime.datetime)
partition_ids (list[str])
async get_eventhub_properties() -> Dict[str, Any]
Retours
Dictionnaire contenant des informations sur le hub d’événements.
Type de retour
Exceptions
get_partition_ids
Obtenez les ID de partition de l’Event Hub.
async get_partition_ids() -> List[str]
Retours
Liste des ID de partition.
Type de retour
Exceptions
get_partition_properties
Obtient les propriétés de la partition spécifiée.
Les clés du dictionnaire de propriétés sont les suivantes :
eventhub_name (str)
id (str)
beginning_sequence_number (int)
last_enqueued_sequence_number (int)
last_enqueued_offset (str)
last_enqueued_time_utc (UTC datetime.datetime)
is_empty (bool)
async get_partition_properties(partition_id: str) -> Dict[str, Any]
Paramètres
Retours
dicté des propriétés de partition.
Type de retour
Exceptions
send_batch
Envoie un lot de données d’événement. Par défaut, la méthode est bloquée jusqu’à ce que l’accusé de réception soit reçu ou que l’opération expire. Si EventHubProducerClient est configuré pour s’exécuter en mode mis en mémoire tampon, la méthode met en file d’attente les événements dans la mémoire tampon locale et retourne. Le producteur effectue l’envoi automatique en arrière-plan.
Si buffered_mode a la valeur False, on_error rappel est facultatif et les erreurs sont gérées comme suit :
Si un rappel on_error est passé pendant l’instanciation du client producteur,
ensuite, les informations d’erreur sont transmises au rappel on_error , qui sera ensuite appelé.
Si un rappel on_error n’est pas passé pendant l’instanciation du client,
l’erreur est alors déclenchée par défaut.
Si buffered_mode a la valeur True, on_error rappel est requis et les erreurs sont gérées comme suit :
Si les événements ne parviennent pas à mettre en file d’attente dans le délai d’attente donné, une erreur est directement générée.
Si les événements ne parviennent pas à être envoyés après la mise en file d’attente, le rappel on_error est appelé.
En mode mis en mémoire tampon, l’envoi d’un lot reste intact et envoyé en tant qu’unité unique. Le lot ne sera pas réorganisé. Cela peut entraîner l’inefficacité de l’envoi d’événements.
Si vous envoyez une liste finie d’EventData ou d’AmqpAnnotatedMessage et que vous savez qu’elle se trouve dans la limite de taille d’image du hub d’événements, vous pouvez l’envoyer avec un appel send_batch . Sinon, utilisez create_batch pour créer EventDataBatch et ajouter EventData ou AmqpAnnotatedMessage dans le lot un par un jusqu’à la limite de taille, puis appelez cette méthode pour envoyer le lot.
async send_batch(event_data_batch: EventDataBatch | List[EventData | AmqpAnnotatedMessage], **kwargs: Any) -> None
Paramètres
- event_data_batch
- Union[EventDataBatch, List[Union[EventData, AmqpAnnotatedMessage]]
Objet EventDataBatch à envoyer ou liste d’EventData à envoyer dans un lot. Tous les EventData ou AmqpAnnotatedMessage dans la liste ou EventDataBatch se trouveront sur la même partition.
- timeout
- float
Temps d’attente maximal pour envoyer les données d’événement en mode non mis en mémoire tampon ou temps d’attente maximal pour mettre les données d’événement en file d’attente dans la mémoire tampon en mode mis en mémoire tampon. En mode non mis en mémoire tampon, le temps d’attente par défaut spécifié lors de la création du producteur sera utilisé. En mode mis en mémoire tampon, le temps d’attente par défaut est Aucun.
- partition_id
- str
ID de partition spécifique à envoyer. La valeur par défaut est None, auquel cas le service affecte à toutes les partitions à l’aide du tourniquet (round robin). Un TypeError est déclenché si partition_id est spécifié et event_data_batch est un EventDataBatch , car EventDataBatch lui-même a partition_id.
- partition_key
- str
Avec le partition_key donné, les données d’événement sont envoyées à une partition particulière du hub d’événements décidé par le service. Un TypeError est déclenché si partition_key est spécifié et event_data_batch est un EventDataBatch , car EventDataBatch lui-même a partition_key. Si partition_id et partition_key sont fournis, le partition_id est prioritaire. AVERTISSEMENT : il est déconseillé de définir partition_key de valeur autre que la chaîne sur les événements à envoyer, car le partition_key sera ignoré par le service Event Hub et les événements seront attribués à toutes les partitions à l’aide d’un tourniquet . En outre, il existe des KITS de développement logiciel (SDK) pour la consommation d’événements qui s’attendent à ce que partition_key soit uniquement de type chaîne. Il se peut qu’ils ne parviennent pas à analyser la valeur non-chaîne.
Type de retour
Exceptions
Si la valeur spécifiée par le paramètre de délai d’expiration s’écoule avant que l’événement puisse être envoyé en mode non mis en mémoire tampon ou que les événements peuvent être mis en file d’attente dans la mise en mémoire tampon en mode mis en mémoire tampon.
Exemples
Envoie de manière asynchrone des données d’événement
async with producer:
event_data_batch = await producer.create_batch()
while True:
try:
event_data_batch.add(EventData('Message inside EventBatchData'))
except ValueError:
# The EventDataBatch object reaches its max_size.
# You can send the full EventDataBatch object and create a new one here.
break
await producer.send_batch(event_data_batch)
send_event
Envoie des données d’événement. Par défaut, la méthode est bloquée jusqu’à ce que l’accusé de réception soit reçu ou que l’opération expire. Si EventHubProducerClient est configuré pour s’exécuter en mode mis en mémoire tampon, la méthode met l’événement en file d’attente dans la mémoire tampon locale et retourne. Le producteur effectue automatiquement le traitement par lots et l’envoi en arrière-plan.
Si buffered_mode a la valeur False, on_error rappel est facultatif et les erreurs sont gérées comme suit : * Si un rappel on_error est passé pendant l’instanciation du client producteur,
then error information will be passed to the *on_error* callback, which will then be called.
* If an *on_error* callback is not passed in during client instantiation,
then the error will be raised by default.
Si buffered_mode a la valeur True, on_error rappel est requis et les erreurs sont gérées comme suit : * Si les événements ne parviennent pas à se mettre en file d’attente dans le délai d’attente donné, une erreur est directement générée.
* If events fail to send after enqueuing successfully, the *on_error* callback will be called.
async send_event(event_data: EventData | AmqpAnnotatedMessage, **kwargs: Any) -> None
Paramètres
- timeout
- float
Temps d’attente maximal pour envoyer les données d’événement en mode non mis en mémoire tampon ou durée d’attente maximale pour mettre en file d’attente les données d’événement dans la mémoire tampon en mode mis en mémoire tampon. En mode non mis en mémoire tampon, le temps d’attente par défaut spécifié lors de la création du producteur sera utilisé. En mode mis en mémoire tampon, le temps d’attente par défaut est Aucun.
- partition_id
- str
ID de partition spécifique à envoyer. La valeur par défaut est None, auquel cas le service est affecté à toutes les partitions à l’aide de round robin. Un typeError est déclenché si partition_id est spécifié et event_data_batch est un EventDataBatch , car EventDataBatch lui-même a partition_id.
- partition_key
- str
Avec la partition_key donnée, les données d’événement sont envoyées à une partition particulière du hub d’événements décidée par le service. Un TypeError est déclenché si partition_key est spécifié et event_data_batch est un EventDataBatch , car EventDataBatch lui-même a partition_key. Si partition_id et partition_key sont fournis, le partition_id est prioritaire. AVERTISSEMENT : il est déconseillé de définir partition_key de valeur autre que la chaîne sur les événements à envoyer, car le partition_key sera ignoré par le service Event Hub et les événements seront attribués à toutes les partitions à l’aide d’un tourniquet . En outre, il existe des KITS de développement logiciel (SDK) pour la consommation d’événements qui s’attendent à ce que partition_key soit uniquement de type chaîne. Il se peut qu’ils ne parviennent pas à analyser la valeur non-chaîne.
Type de retour
Exceptions
Si la valeur spécifiée par le paramètre de délai d’expiration s’écoule avant que l’événement ne puisse être envoyé en mode non mis en mémoire tampon ou que les événements ne peuvent pas être mis en file d’attente dans la mémoire tampon en mode mis en mémoire tampon.
Attributs
total_buffered_event_count
Nombre total d’événements actuellement mis en mémoire tampon et en attente d’être publiés, sur toutes les partitions. Retourne Aucun en mode non mis en mémoire tampon. REMARQUE : la mémoire tampon d’événements est traitée dans une coroutine en arrière-plan. Par conséquent, le nombre d’événements dans la mémoire tampon signalé par cette API doit être considéré comme une approximation et est recommandé uniquement pour le débogage.
Type de retour
Azure SDK for Python