DbExecutionStrategy Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет базовую реализацию механизма повторных попыток для ненадежных операций и временных условий, в которых используются экспоненциально увеличивающиеся задержки между повторными попытками.
public abstract class DbExecutionStrategy : System.Data.Entity.Infrastructure.IDbExecutionStrategy
type DbExecutionStrategy = class
interface IDbExecutionStrategy
Public MustInherit Class DbExecutionStrategy
Implements IDbExecutionStrategy
- Наследование
-
DbExecutionStrategy
- Производный
- Реализации
Комментарии
Новый экземпляр будет создаваться при каждом выполнении операции. Для вычисления задержки после retryCount
числа попыток используется следующая формула: min(random(1, 1.1) * (2 ^ retryCount - 1), maxDelay)
начинается retryCount
с 0. Случайный фактор равномерно распределяет повторные попытки из нескольких одновременных операций, завершающихся сбоем одновременно.
Конструкторы
DbExecutionStrategy() |
Создает новый экземпляр DbExecutionStrategy. |
DbExecutionStrategy(Int32, TimeSpan) |
Создает новый экземпляр DbExecutionStrategy с указанными ограничениями на количество повторных попыток и задержку между повторными попытками. |
Свойства
RetriesOnFailure |
Возвращает |
Suspended |
Указывает, приостановлена ли стратегия. Стратегия обычно приостанавливается во время выполнения, чтобы избежать рекурсивного выполнения вложенных операций. |
Методы
Execute(Action) |
Повторно выполняет указанную операцию, когда она удовлетворяет текущей политике повторных попыток. |
Execute<TResult>(Func<TResult>) |
Повторно выполняет указанную операцию, когда она удовлетворяет текущей политике повторных попыток. |
ExecuteAsync(Func<Task>, CancellationToken) |
Повторно выполняет указанную асинхронную операцию, удовлетворяющую текущей политике повторных попыток. |
ExecuteAsync<TResult>(Func<Task<TResult>>, CancellationToken) |
Многократно выполняет указанную асинхронную операцию, удовлетворяющую текущей политике повторных попыток. |
GetNextDelay(Exception) |
Определяет, следует ли повторять операцию и задержку перед следующей попыткой. |
ShouldRetryOn(Exception) |
Определяет, представляет ли указанное исключение временный сбой, который может быть компенсирован повторным повтором. |
UnwrapAndHandleException<T>(Exception, Func<Exception,T>) |
Рекурсивно получает InnerException от |
Применяется к
Entity Framework