다음을 통해 공유


DbExecutionStrategy 클래스

정의

재시도 사이에 기하급수적으로 증가하는 지연을 사용하는 신뢰할 수 없는 작업 및 일시적인 조건에 대한 재시도 메커니즘의 기본 구현을 제공합니다.

public abstract class DbExecutionStrategy : System.Data.Entity.Infrastructure.IDbExecutionStrategy
type DbExecutionStrategy = class
    interface IDbExecutionStrategy
Public MustInherit Class DbExecutionStrategy
Implements IDbExecutionStrategy
상속
DbExecutionStrategy
파생
구현

설명

작업이 실행될 때마다 새 instance 만들어집니다. 다음 수식은 시도 횟수 후 retryCount 지연을 계산하는 데 사용됩니다. min(random(1, 1.1) * (2 ^ retryCount - 1), maxDelay)retryCount 0에서 시작됩니다. 임의 계수는 동시에 실패하는 여러 동시 작업에서 재시도 시도를 균일하게 분산합니다.

생성자

DbExecutionStrategy()

DbExecutionStrategy의 새 인스턴스를 만듭니다.

DbExecutionStrategy(Int32, TimeSpan)

재시도 횟수 및 재시도 사이의 지연에 대해 지정된 제한을 사용하여 의 DbExecutionStrategy 새 instance 만듭니다.

속성

RetriesOnFailure

실패 후 실행을 다시 시도할 수 있음을 DbExecutionStrategy 나타내는 를 반환 true 합니다.

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을 EntityException재귀적으로 가져오거나 UpdateException 에 전달 DbUpdateException 합니다.exceptionHandler

적용 대상