J'ai du mal à comprendre la classe RetryExponential utilisée conjointement avec QueueClients (et je suppose également SubscriptionClients).Signification de la propriété RetryExponential de ServiceBus
Les propriétés sont listées here, mais je ne pense pas que mon interprétation de leurs descriptions soit correcte.
Voici mon interprétation ...
var minBackoff = TimeSpan.FromMinutes(5); // wait 5 minutes for the first attempt?
var maxBackoff = TimeSpan.FromMinutes(15); // all attempts must be done within 15 mins?
var deltaBackoff = TimeSpan.FromSeconds(30); // the time between each attempt?
var terminationTimeBuffer = TimeSpan.FromSeconds(90); // the length of time each attempt is permitted to take?
var retryPolicy = new RetryExponential(minBackoff, maxBackoff, deltaBackoff, terminationTimeBuffer, 10);
Mon rôle de travailleur a seulement tenté de traiter un message de la file d'attente deux fois dans la dernière heure, même si je pense que basé sur la configuration ci-dessus, il devrait partir plus souvent (toutes les 30 secondes + tout temps de traitement utilisé pendant la tentative précédente jusqu'à 90 secondes). Je suppose que ces paramètres forceraient une nouvelle tentative toutes les 2 minutes. Cependant, je ne vois pas comment cette interprétation est exponentielle du tout.
Est-ce que mes interprétations pour chaque propriété (dans les commentaires ci-dessus) sont correctes? Sinon (et je suppose qu'ils ne sont pas corrects), que signifient chacune des propriétés?
Mike votre assertion sur Recevoir ne participant pas à Réessayer est correcte. Une opération de réception renverra une valeur nulle ou un message, puis devra être appelée à nouveau pour recevoir le message suivant. La règle de nouvelle tentative consiste à gérer les erreurs et à réessayer ces opérations, telles que l'envoi de messages, l'envoi de messages ou la création d'une file d'attente, etc. –
@MikeWo Tous les documents et toutes les personnes parlent de MaximumBackoff mais de valeur? Connaissez-vous la valeur? –
@NuriYILMAZ Le MaximumBackoff est une durée. La stratégie de nouvelle tentative en place pour le bus de service par défaut est définie par RetryPolicy.Default, qui utilise un MaximumBackoff de 30 secondes. Si vous définissez cette option sur autre chose, vous voulez utiliser une valeur qui a le plus de temps à attendre entre la recherche de la file d'attente et celle de la file d'attente. – MikeWo