Question

Quelqu'un at-il un ensemble de meilleures pratiques qu'ils aimeraient partager en rapport avec la gestion des erreurs Azure WorkerRole? Je particulalry comme toutes les idées que vous pourriez avoir sur la façon de traiter les conditions d'erreur persistants (à savoir où l'accès à une ressource externe comme un service Web est temporairement indisponible pendant plusieurs heures). Merci .....

Était-ce utile?

La solution

Vous pouvez consulter Gestion des exceptions d'action bloc App politiques .NET pour ce cas (disjoncteur curcuit simple ou Sleep'n Retry-forever pourrait faire un travail).

Ce bloc d'application utile dans des scénarios où la connectivité entre les éléments du système distribué est peu fiable et soumis à diverses pannes. L'un des avantages est que ces politiques d'action pour une application entière pourraient être configurés en place, puis injectées dans les classes appropriées via Inversion de contrôle .

Par exemple:

var policy = ActionPolicy
  .Handle<CommunicationException>()
  .CircuitBreaker(1.Minutes(), 2);

var recordSet = policy
  .Get(() => remoteRepository.GetRecords(someCriteria));

Lokad.Cloud (pour Azure) projet open source utilise même des politiques de Lokad bibliothèques partagées.

NB: les politiques d'action sont compatibles avec RetryPolicies du Azure Storage:

var policy = ActionPolicy.Handle<StorageServerException>().Retry(5);
queueService.RetryPolicy = policy.Do;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top