Frage

Hat jemand eine Reihe von Best Practices haben sie möchten Azure WorkerRole Fehlerbehandlung im Zusammenhang zu teilen? Ich particulalry würde wie alle Ideen, die Sie haben auf können, wie mit persistierendem Fehlerbedingungen beschäftigen (das heißt, wenn der Zugang zu einer externen Quelle wie ein Web-Service ist vorübergehend für mehrere Stunden). Dank .....

War es hilfreich?

Lösung

Sie können Check-out Ausnahmebehandlung Aktion Richtlinien App-Block für .NET für diesen Fall (curcuit Brecher oder einfach Schlaf-und-Wiederholungs-forever könnte funktionieren).

Diese Anwendung Block war in Szenarien nützlich, in denen die Verbindung zwischen Elementen des verteilten Systems ist unzuverlässig und unterliegen verschiedene Ausfälle. Einer der Vorteile ist, dass eine solche Maßnahme Richtlinien für eine gesamte Anwendung an Ort und Stelle konfiguriert werden kann und dann in die entsprechenden Klassen über Inversion of Control .

Zum Beispiel:

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

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

Lokad.Cloud (für Azure) Open-Source-Projekt verwendet gleiche Politik aus Lokad Shared Libraries.

NB: Aktionspolitik sind kompatibel mit RetryPolicies des Azure Storage:

var policy = ActionPolicy.Handle<StorageServerException>().Retry(5);
queueService.RetryPolicy = policy.Do;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top