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

true返回 以指示DbExecutionStrategy可能会在失败后重试执行。

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>)

以递归方式从 exception 获取 InnerException,只要它是 EntityExceptionDbUpdateExceptionUpdateException ,并将其传递给 exceptionHandler

适用于