using System.Data.Entity.SqlServer;
using System.Data.SqlClient;
public class DbExecutionStrategy : SqlAzureExecutionStrategy
{
private const int retryCount = 2;
private static readonly TimeSpan maxDelay = TimeSpan.FromMinutes(1);
public DbExecutionStrategy ()
: base(retryCount, maxDelay)
{
}
public DbExecutionStrategy (int maxRetryCount, TimeSpan maxDelay)
: base(maxRetryCount, maxDelay)
{
}
protected override bool ShouldRetryOn(Exception exception)
{
if(exception.InnerException != null && exception.InnerException is SqlException)
{
return true;
}
return false;
}
}
< /code>
Я использую эту пользовательскую стратегию, например: < /p>
var executionStrategy = new DbExecutionStrategy();
executionStrategy.Execute(() => { some business logic here });
< /code>
- Я хочу распечатать текущий счетчик повторной попытки внутри метода выполнения. Возможно ли это вообще?
Это для целей регистрации. Чтобы увидеть, какой ритм дал лучшие результаты и т. Д., Пожалуйста, не стесняйтесь предлагать наилучшие повторные риски и MaxDelay до следующей попытки. Я надеюсь, что это переключение wth Exceptions как случаи и повторно в каждом случае.
Подробнее здесь: https://stackoverflow.com/questions/589 ... onstrategy