这是我们的政策。
Policy GetNewPolicy()
{
return Policy.Handle<TimeoutException>()
.Or<WebSocketException>()
.Or<SshConnectionException>()
.Or<SocketException>()
.Retry(RetryCount, onRetry: (e, i) => Console.WriteLine($"Retry{i} due to {e.GetType().Name} "));
}
这是一个我们的客户如何与之交互的示例:
var policy = GetNewPolicy();
return policy.Execute(() =>
{
//do stuff that might throw SocketException
});
但是,当我们检查日志时,该策略似乎并没有重试,我们在日志中看到确实抛出了SocketException,但是没有重试。此代码通过SQL代理作业在命令行界面中执行。
这是生成的日志的屏幕截图。