Partager via


EventProcessor<TPartition>.OnProcessingErrorAsync Méthode

Définition

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

protected abstract System.Threading.Tasks.Task OnProcessingErrorAsync (Exception exception, TPartition partition, string operationDescription, System.Threading.CancellationToken cancellationToken);
abstract member OnProcessingErrorAsync : Exception * 'Partition * string * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Protected MustOverride Function OnProcessingErrorAsync (exception As Exception, partition As TPartition, operationDescription As String, cancellationToken As CancellationToken) As Task

Paramètres

exception
Exception

Exception qui s’est produite pendant le fonctionnement du processeur d’événements.

partition
TPartition

Contexte de la partition associée à l’erreur, le cas échéant ; sinon, null. Cela peut être initialisé uniquement pour les membres de EventProcessorPartition, en fonction du point auquel l’erreur s’est produite.

operationDescription
String

Brève description textuelle de l’opération au cours de laquelle l’exception s’est produite ; destiné à être d’information uniquement.

cancellationToken
CancellationToken

Un CancellationToken instance pour signaler la demande d’annulation du traitement. Cela est plus susceptible de se produire lorsque le processeur s’arrête.

Retours

Remarques

Ce gestionnaire d’erreurs est appelé lorsqu’une exception est observée dans le processeur d’événements 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 remplacements et points d’extension qui ne sont pas critiques pour le fonctionnement du processeur. Le processeur d’événements fera tout son possible pour récupérer des exceptions et poursuivre le traitement. Si une exception qui ne peut pas être récupérée est rencontrée, le processeur tentera de perdre la propriété de toutes les partitions qu’il traitait afin que le travail puisse être redistribué.

Les exceptions signalées à cette méthode peuvent être irrécupérables ou non irrécupérables; é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 terminé ou redémarré. Si vous le souhaitez, vous pouvez effectuer cette opération 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 prenant en compte les observations effectuées par ce gestionnaire d’erreurs, la méthode appelée lors de l’initialisation du traitement pour une partition et 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 lui permet de buller et ne tente pas de le gérer d’aucune manière. Les développeurs sont vivement encouragés à prendre en compte les scénarios d’exception et à se prémunir contre eux en utilisant des blocs try/catch et d’autres moyens, le cas échéant.

Cette méthode sera appelée simultanément et n’est pas attendue par le processeur, car chaque erreur est indépendante. Aucun délai n’est imposé à un appel; il est sûr que les implémentations effectuent des opérations de longue durée et des nouvelles tentatives en fonction des besoins.

S’applique à