2012-03-24 5 views
0

Ich habe Fehler No connection could be made because the target machine actively refused it oft, wenn sie von Azure Tabellen Speicher, irgendwann auf 80 (http) irgendwann auf 443 (https)Lesen Sie auf Azure Table wiederholen

lesen weiß ich, ich kann Setup von .SaveChangesWithRetries() für Schreib wiederholen, aber wie Retry beim Lesen anwenden?

btw, ich Code lesen

DataServiceQuery<datatype> query = tableContext.CreateQuery<datatype>("table"); 
IQueryable<datatype> results= from q in query select q 

Antwort

1

Last ich die halbamtliche Transient Fault Handling Framework verwenden musste, aber das war vor über einem Jahr; und die Best Practices-Richtlinien könnten sich geändert haben.

EDIT

Wie in den Kommentaren darauf hingewiesen, hat sich diese Lösung in eine The Transient Fault Handling Application Block entwickelt, die als NuGet Paket jetzt verfügbar ist.

Für den Uneingeweihten gibt das Framework im Grunde Wiederholungs (Hammer) -Richtlinie für eine Klasse von Transportfehler an, die natürlich in jeder verteilten Umgebung und insbesondere in Azure auftreten. Zum Beispiel SQL Azure kann einen Fehlercode "Server zu beschäftigt, versuchen Sie es erneut" oder "Ihre Daten gingen auf dem Weg hierher, oops" verloren, und Sie müssen nicht alle diese Codes im Grunde wissen sage "Wiederholen".

+0

danke, aber es ist wirklich altes Zeug und "wurde durch ein neueres Ergebnis ersetzt", ich warte und hoffe, es ist etwas neues –

+1

Richtig du bist, aber der Link ist genau dort. Anscheinend können Sie es jetzt als Nuget-Paket bekommen, und es ist noch offizieller. :) – Gleno

0

Verwenden Sie Polly: https://github.com/App-vNext/Polly, um einen Wiederholungshandler zu implementieren, der die Fehlertypen/Codes/etc abfängt, die Sie behandeln und erneut versuchen möchten. Polly wird von MS selbst für bestimmte Dienste empfohlen (siehe: https://docs.microsoft.com/en-us/azure/architecture/best-practices/retry-service-specific und https://docs.microsoft.com/en-us/dotnet/standard/microservices-architecture/implement-resilient-applications/implement-http-call-retries-exponential-backoff-polly) .. und ich habe festgestellt, dass seine Fließkommasyntax eine Freude zu benutzen ist. Hier ist ein Beispiel für einen Polly-Wiederholungshandler, den ich erstellt habe, um StorageException von Azure Storage zu behandeln. Es implementiert eine exponentielle Backoff-Strategie().

Wenn Sie eine Methode zum Erstellen einer Liste von Transient Fehlercodes für HTTP-Aufrufe möchten, lassen Sie es mich wissen.

Verwandte Themen