Partager via


EventProcessorClient Classe

Définition

Permet de consommer et de traiter des événements sur toutes les partitions d’un Event Hub donné dans l’étendue d’un groupe de consommateurs spécifique.  Le processeur est capable de collaborer avec d’autres instances pour le même appairage Event Hub et groupe de consommateurs pour partager le travail à l’aide d’une plateforme de stockage commune pour communiquer.  La tolérance de panne est également intégrée, ce qui permet au processeur d’être résilient face aux erreurs.

public class EventProcessorClient : Azure.Messaging.EventHubs.Primitives.EventProcessor<Azure.Messaging.EventHubs.Primitives.EventProcessorPartition>
type EventProcessorClient = class
    inherit EventProcessor<EventProcessorPartition>
Public Class EventProcessorClient
Inherits EventProcessor(Of EventProcessorPartition)
Héritage

Remarques

Pour activer la coordination du partage de partitions entre EventProcessorClient les instances, elles affirment un accès en lecture exclusif aux partitions pour le groupe de consommateurs. Aucun autre lecteur ne doit être actif dans le groupe de consommateurs autre que les processeurs qui ont l’intention de collaborer. L’accès aux lecteurs non exclusifs sera refusé ; les lecteurs exclusifs, y compris les processeurs utilisant des emplacements de stockage différents, interfèrent avec le fonctionnement et les performances du processeur.

Le EventProcessorClient est sûr à mettre en cache et à utiliser pendant la durée de vie d’une application, et c’est la meilleure pratique quand l’application traite des événements régulièrement ou semi-régulièrement. Le processeur est chargé de garantir une utilisation efficace du réseau, du processeur et de la mémoire. StopProcessingAsync(CancellationToken)StopProcessing(CancellationToken) L’appel ou lorsque le traitement est terminé ou que l’application s’arrête garantit que les ressources réseau et autres objets non managés sont correctement nettoyés.

Constructeurs

EventProcessorClient()

Initialise une nouvelle instance de la classe EventProcessorClient.

EventProcessorClient(BlobContainerClient, String, String)

Initialise une nouvelle instance de la classe EventProcessorClient.

EventProcessorClient(BlobContainerClient, String, String, EventProcessorClientOptions)

Initialise une nouvelle instance de la classe EventProcessorClient.

EventProcessorClient(BlobContainerClient, String, String, String)

Initialise une nouvelle instance de la classe EventProcessorClient.

EventProcessorClient(BlobContainerClient, String, String, String, AzureNamedKeyCredential, EventProcessorClientOptions)

Initialise une nouvelle instance de la classe EventProcessorClient.

EventProcessorClient(BlobContainerClient, String, String, String, AzureSasCredential, EventProcessorClientOptions)

Initialise une nouvelle instance de la classe EventProcessorClient.

EventProcessorClient(BlobContainerClient, String, String, String, EventProcessorClientOptions)

Initialise une nouvelle instance de la classe EventProcessorClient.

EventProcessorClient(BlobContainerClient, String, String, String, TokenCredential, EventProcessorClientOptions)

Initialise une nouvelle instance de la classe EventProcessorClient.

Propriétés

ConsumerGroup

Nom du groupe de consommateurs auquel ce processeur d’événements est associé. Les événements seront en lecture seule dans le contexte de ce groupe.

EventHubName

Nom du hub d’événements auquel le processeur est connecté, spécifique à l’espace de noms Event Hubs qui le contient.

FullyQualifiedNamespace

Espace de noms Event Hubs complet auquel le processeur est associé. Cela est susceptible d’être similaire à {yournamespace}.servicebus.windows.net.

Identifier

Nom unique utilisé pour identifier ce processeur d’événements.

IsRunning

Indique si ce processeur d’événements est en cours d’exécution.

RetryPolicy

Stratégie active qui régit les nouvelles tentatives pour le processeur.

(Hérité de EventProcessor<TPartition>)

Méthodes

ClaimOwnershipAsync(IEnumerable<EventProcessorPartitionOwnership>, CancellationToken)

Tente de revendiquer la propriété des partitions spécifiées pour traitement. Cette méthode est utilisée par l’équilibrage de charge pour permettre aux instances de processeur d’événements de répartir la responsabilité du traitement des partitions pour un hub d’événements donné et le jumelage de groupes de consommateurs entre les processeurs d’événements actifs.

CreateConnection()

Crée un EventHubConnection à utiliser pour communiquer avec le service Event Hubs.

GetCheckpointAsync(String, CancellationToken)

Retourne un point de contrôle pour le hub d’événements, le groupe de consommateurs et l’ID de partition associés au processeur d’événements instance, afin que le traitement d’une partition donnée puisse être correctement initialisé.

ListOwnershipAsync(CancellationToken)

Génère une liste des attributions de propriété pour les partitions entre chacune des instances de processeur d’événements qui coopèrent pour un appairage de groupe de consommateurs et event Hub donné. Cette méthode est utilisée lors de l’équilibrage de charge pour permettre au processeur de découvrir d’autres collaborateurs actifs et de prendre des décisions sur la meilleure façon d’équilibrer le travail entre eux.

ListPartitionIdsAsync(EventHubConnection, CancellationToken)

Requêtes pour les identificateurs des partitions Event Hub.

(Hérité de EventProcessor<TPartition>)
OnInitializingPartitionAsync(EventProcessorPartition, CancellationToken)

Effectue les tâches d’initialisation d’une partition et de son contexte associé pour le traitement des événements.

OnInitializingPartitionAsync(TPartition, CancellationToken)

Effectue les tâches d’initialisation d’une partition et de son contexte associé pour le traitement des événements.

(Hérité de EventProcessor<TPartition>)
OnPartitionProcessingStoppedAsync(EventProcessorPartition, ProcessingStoppedReason, CancellationToken)

Effectue les tâches nécessaires lors de l’arrêt du traitement d’une partition. Cela se produit généralement lorsque la partition est revendiquée par un autre processeur d’événements instance ou lorsque le processeur d’événements actuel instance s’arrête.

OnPartitionProcessingStoppedAsync(TPartition, ProcessingStoppedReason, CancellationToken)

Effectue les tâches nécessaires lors de l’arrêt du traitement d’une partition. Cela se produit généralement lorsque la partition est revendiquée par un autre processeur d’événements instance ou lorsque le processeur d’événements actuel instance s’arrête.

(Hérité de EventProcessor<TPartition>)
OnProcessingErrorAsync(Exception, EventProcessorPartition, String, CancellationToken)

Effectue les tâches nécessaires lorsqu’une exception inattendue se produit dans le fonctionnement de l’infrastructure du processeur d’événements.

OnProcessingErrorAsync(Exception, TPartition, String, CancellationToken)

Effectue les tâches nécessaires lorsqu’une exception inattendue se produit dans le fonctionnement de l’infrastructure du processeur d’événements.

(Hérité de EventProcessor<TPartition>)
OnProcessingEventBatchAsync(IEnumerable<EventData>, EventProcessorPartition, CancellationToken)

Effectue les tâches nécessaires pour traiter un lot d’événements pour une partition donnée, car ils sont lus à partir du service Event Hubs.

OnProcessingEventBatchAsync(IEnumerable<EventData>, TPartition, CancellationToken)

Effectue les tâches nécessaires pour traiter un lot d’événements pour une partition donnée, car ils sont lus à partir du service Event Hubs.

(Hérité de EventProcessor<TPartition>)
ReadLastEnqueuedEventProperties(String)

Ensemble d’informations sur le dernier événement mis en file d’attente d’une partition, tel qu’observé par le client EventHubs associé à ce contexte lorsque les événements sont reçus du service Event Hubs. Cette option est disponible uniquement si le consommateur a été créé avec TrackLastEnqueuedEventProperties set.

(Hérité de EventProcessor<TPartition>)
StartProcessing(CancellationToken)

Signale au pour commencer le EventProcessorClient traitement des événements. Si cette méthode est appelée pendant l’exécution du processeur, aucune action n’est effectuée.

StartProcessingAsync(CancellationToken)

Signale au pour commencer le EventProcessorClient traitement des événements. Si cette méthode est appelée pendant l’exécution du processeur, aucune action n’est effectuée.

StopProcessing(CancellationToken)

Signale l’arrêt du EventProcessorClient traitement des événements. Si cette méthode est appelée alors que le processeur n’est pas en cours d’exécution, aucune action n’est effectuée.

StopProcessingAsync(CancellationToken)

Signale l’arrêt du EventProcessorClient traitement des événements. Si cette méthode est appelée alors que le processeur n’est pas en cours d’exécution, aucune action n’est effectuée.

UpdateCheckpointAsync(String, Int64, Nullable<Int64>, CancellationToken)

Crée ou met à jour un point de contrôle pour une partition spécifique, en identifiant une position dans le flux d’événements de la partition à partir de laquelle un processeur d’événements doit commencer la lecture.

ValidateProcessingPreconditions(CancellationToken)

Effectue les tâches nécessaires pour valider la configuration de base et les autorisations des dépendances nécessaires au fonctionnement du processeur.

Événements

PartitionClosingAsync

Effectue les tâches nécessaires lors de l’arrêt du traitement d’une partition. Cela se produit généralement lorsque la partition est revendiquée par un autre processeur d’événements instance ou lorsque le processeur d’événements actuel instance s’arrête.

Il n’est pas recommandé que l’état du processeur soit géré directement à partir de cette méthode ; La demande de démarrage ou d’arrêt du processeur peut entraîner un scénario d’interblocage, en particulier si vous utilisez la forme synchrone de l’appel.

PartitionInitializingAsync

Effectue les tâches d’initialisation d’une partition et de son contexte associé pour le traitement des événements.

Il n’est pas recommandé que l’état du processeur soit géré directement à partir de cette méthode ; La demande de démarrage ou d’arrêt du processeur peut entraîner un scénario d’interblocage, en particulier si vous utilisez la forme synchrone de l’appel.

ProcessErrorAsync

Effectue les tâches nécessaires lorsqu’une exception inattendue se produit dans le fonctionnement de l’infrastructure du processeur d’événements. L’implémentation est obligatoire.

Ce gestionnaire d’erreurs est appelé lorsqu’une exception est observée dans le lui-même ; il n’est pas appelé pour les exceptions dans le code qui a été implémenté pour traiter des événements ou d’autres gestionnaires d’événements et points d’extension qui exécutent du EventProcessorClient code de développeur. Le EventProcessorClient fera tous les efforts nécessaires pour récupérer à partir d’exceptions et poursuivre le traitement. Si une exception qui ne peut pas être récupérée est rencontrée, le processeur tente de perdre la propriété de toutes les partitions qu’il a traitées afin que le travail puisse être redistribué.

Les exceptions exposées à cette méthode peuvent être fatales ou non mortelles; Étant donné que le processeur peut ne pas être en mesure de prédire avec précision si une exception a été irrécupérable ou si son état a été endommagé, cette méthode a la responsabilité de déterminer si le traitement doit être arrêté ou redémarré. Si vous le souhaitez, vous pouvez le faire en toute sécurité en appelant StopProcessingAsync(CancellationToken) et/ou StartProcessingAsync(CancellationToken).

Il est recommandé que, pour les scénarios de production, la décision soit prise en tenant compte des observations effectuées par ce gestionnaire d’erreurs, de la méthode appelée lors de l’initialisation du traitement pour une partition et de la méthode appelée lors de l’arrêt du traitement d’une partition. De nombreux développeurs incluront également les données de leurs plateformes de supervision dans cette décision.

Comme pour le traitement des événements, si une exception se produit dans le code du gestionnaire d’erreurs, le processeur d’événements l’autorise à buller et ne tente pas de la gérer de quelque manière que ce soit. Les développeurs sont vivement encouragés à prendre en compte les scénarios d’exception et à les protéger à l’aide de blocs try/catch et d’autres moyens, le cas échéant.

ProcessEventAsync

Effectue les tâches nécessaires pour traiter un lot d’événements pour une partition donnée, car ils sont lus à partir du service Event Hubs. L’implémentation est obligatoire.

Si une exception se produit dans le code de cette méthode, le processeur d’événements lui permet de se propager dans la pile sans tenter de la gérer de quelque manière que ce soit. Sur la plupart des hôtes, la tâche responsable du traitement de la partition est alors défaillante, ce qui entraîne son redémarrage à partir du dernier point de contrôle. Sur certains hôtes, il peut bloquer le processus. Les développeurs sont vivement encouragés à prendre en compte tous les scénarios d’exception et à les protéger à l’aide de blocs try/catch et d’autres moyens, le cas échéant.

Il n’est pas recommandé que l’état du processeur soit géré directement à partir de ce gestionnaire ; La demande de démarrage ou d’arrêt du processeur peut entraîner un scénario d’interblocage, en particulier si vous utilisez la forme synchrone de l’appel.

S’applique à