Ho bisogno di errori Azure WorkerRole Gestione Guidance
-
21-09-2019 - |
Domanda
Qualcuno ha un insieme di best practice che desideri condividere relative al trattamento degli errori Azure WorkerRole? Mi piacerebbe particulalry come tutte le idee che potete avere su come trattare con le condizioni di errore persistenti (cioè in cui l'accesso a una risorsa esterna, come un servizio web è temporaneamente inattivo per diverse ore). Grazie .....
Soluzione
Si potrebbe verificare Politiche Gestione delle eccezioni di azione App Block per .NET per questo caso (interruttore curcuit o semplice sleep-and-retry-forever potrebbe fare il lavoro).
Questo blocco applicazione è stata utile in scenari, in cui la connettività tra gli elementi del sistema distribuito è inaffidabile e soggetta a vari fallimenti. Uno dei vantaggi è che tali politiche azione per un'intera applicazione potrebbe essere configurato in posizione e poi iniettati nelle classi appropriate tramite Inversion of Control .
Ad esempio:
var policy = ActionPolicy
.Handle<CommunicationException>()
.CircuitBreaker(1.Minutes(), 2);
var recordSet = policy
.Get(() => remoteRepository.GetRecords(someCriteria));
Lokad.Cloud (per Azure) progetto open source utilizza stesse politiche da Lokad librerie condivise.
NB: le politiche di azione siano compatibili con RetryPolicies della Azure:
var policy = ActionPolicy.Handle<StorageServerException>().Retry(5);
queueService.RetryPolicy = policy.Do;