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 от |