DbExecutionStrategy 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
为不可靠操作和暂时性条件提供重试机制的基本实现,这些条件使用指数级增加的重试间隔延迟。
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>) |
以递归方式从 |