没有任何人有一套最佳做法,他们想分享有关Azure WorkerRole的错误处理?我特别喜欢的任何想法,你可能必须就如何处理与持久性错误的情况(即在访问外部资源的一个网络服务是暂时下来的几个小时)。谢谢....

有帮助吗?

解决方案

你可以检查出来的 例外处理行动政策的应用程序块。净 对于这种情况(电路断路器或简单的睡眠和试-永远可能做的工作)。

这个应用程序的框有助于方案,其中之间的连接元素的分布式系统不可靠并且受到种种失败。其中一个优点是,这种行动的政策对于整个应用程序的可能配置在地方然后再注入适当的课程通过 反转的控制.

例如:

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

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

Lokad.云 (Azure)开源项目使用同样的政策,从Lokad共用图书馆。

NB:行动政策是兼容的RetryPolicies的蔚蓝的存储:

var policy = ActionPolicy.Handle<StorageServerException>().Retry(5);
queueService.RetryPolicy = policy.Do;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top