다음을 통해 공유


SqlServerRetryingExecutionStrategy 클래스

정의

IExecutionStrategy SQL Server 실패한 실행을 다시 시도하기 위한 구현입니다.

public class SqlServerRetryingExecutionStrategy : Microsoft.EntityFrameworkCore.Storage.ExecutionStrategy
type SqlServerRetryingExecutionStrategy = class
    inherit ExecutionStrategy
Public Class SqlServerRetryingExecutionStrategy
Inherits ExecutionStrategy
상속
SqlServerRetryingExecutionStrategy

설명

이 전략은 특히 SQL Server(Azure SQL 포함)에 맞게 조정됩니다. 다시 시도될 수 있는 일시적인 오류에 대한 오류 번호로 미리 구성됩니다. 다시 시도할 추가 오류 번호도 제공할 수 있습니다.

서비스 수명은 입니다 Scoped. 즉, 각 DbContext instance 이 서비스의 자체 instance 사용합니다. 구현은 모든 수명에 등록된 다른 서비스에 따라 달라질 수 있습니다. 구현은 스레드로부터 안전할 필요가 없습니다.

자세한 내용 과 예제는 연결 복원력 및 데이터베이스 재시 도를 참조하세요.

생성자

SqlServerRetryingExecutionStrategy(DbContext)

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

SqlServerRetryingExecutionStrategy(DbContext, Int32)

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

SqlServerRetryingExecutionStrategy(DbContext, Int32, TimeSpan, ICollection<Int32>)

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

SqlServerRetryingExecutionStrategy(DbContext, Int32, TimeSpan, IEnumerable<Int32>)

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

SqlServerRetryingExecutionStrategy(ExecutionStrategyContext)

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

SqlServerRetryingExecutionStrategy(ExecutionStrategyContext, Int32)

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

SqlServerRetryingExecutionStrategy(ExecutionStrategyContext, Int32, TimeSpan, ICollection<Int32>)

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

SqlServerRetryingExecutionStrategy(ExecutionStrategyDependencies)

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

SqlServerRetryingExecutionStrategy(ExecutionStrategyDependencies, IEnumerable<Int32>)

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

SqlServerRetryingExecutionStrategy(ExecutionStrategyDependencies, Int32)

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

SqlServerRetryingExecutionStrategy(ExecutionStrategyDependencies, Int32, TimeSpan, ICollection<Int32>)

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

SqlServerRetryingExecutionStrategy(ExecutionStrategyDependencies, Int32, TimeSpan, IEnumerable<Int32>)

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

필드

DefaultMinDelayThrottling

제한 오류에 대한 재시도 사이의 기본 최소 시간 지연입니다.

속성

AdditionalErrorNumbers

일시적인 것으로 간주되어야 하는 추가 SQL 오류 번호입니다.

Context

작업이 호출될 컨텍스트입니다.

(다음에서 상속됨 ExecutionStrategy)
Dependencies

이 서비스에 대한 종속성입니다.

(다음에서 상속됨 ExecutionStrategy)
ExceptionsEncountered

지금까지 작업을 다시 시도하게 한 예외 목록입니다.

(다음에서 상속됨 ExecutionStrategy)
Logger

ExecutionStrategy에 대한 로거입니다.

(다음에서 상속됨 ExecutionStrategy)
MaxRetryCount

최대 재시도 횟수입니다.

(다음에서 상속됨 ExecutionStrategy)
MaxRetryDelay

재시도 사이의 최대 지연.

(다음에서 상속됨 ExecutionStrategy)
Random

재시도 사이의 지연을 변경하기 위해 사용할 수 있는 의사 난수 생성기입니다.

(다음에서 상속됨 ExecutionStrategy)
RetriesOnFailure

오류가 발생한 후 실행을 다시 시도할 수 있는지 여부를 IExecutionStrategy 나타냅니다.

(다음에서 상속됨 ExecutionStrategy)

메서드

Execute<TState,TResult>(Func<TState,TResult>, Func<TState,ExecutionResult<TResult>>, TState)

지정된 작업을 실행하고 결과를 반환합니다.

(다음에서 상속됨 ExecutionStrategy)
Execute<TState,TResult>(TState, Func<DbContext,TState,TResult>, Func<DbContext,TState,ExecutionResult<TResult>>)

지정된 작업을 실행하고 결과를 반환합니다.

(다음에서 상속됨 ExecutionStrategy)
ExecuteAsync<TState,TResult>(Func<TState,CancellationToken,Task<TResult>>, Func<TState,CancellationToken,Task<ExecutionResult<TResult>>>, TState, CancellationToken)

지정된 비동기 작업을 실행하고 결과를 반환합니다.

(다음에서 상속됨 ExecutionStrategy)
ExecuteAsync<TState,TResult>(TState, Func<DbContext,TState,CancellationToken, Task<TResult>>, Func<DbContext,TState,CancellationToken,Task<ExecutionResult<TResult>>>, CancellationToken)

지정된 비동기 작업을 실행하고 결과를 반환합니다.

(다음에서 상속됨 ExecutionStrategy)
ExecuteInTransaction<TState,TResult>(Func<TState,TResult>, Func<TState,Boolean>, TState)

트랜잭션에서 지정된 작업을 실행하고 커밋한 후 결과를 반환합니다.

(다음에서 상속됨 ExecutionStrategy)
ExecuteInTransactionAsync<TState,TResult>(Func<TState,CancellationToken, Task<TResult>>, Func<TState,CancellationToken,Task<Boolean>>, TState, CancellationToken)

지정된 비동기 작업을 실행하고 결과를 반환합니다.

(다음에서 상속됨 ExecutionStrategy)
GetNextDelay(Exception)

작업을 다시 시도해야 하는지 여부와 다음 시도 전에 지연을 결정합니다.

OnFirstExecution()

첫 번째 작업 실행 전에 호출된 메서드

(다음에서 상속됨 ExecutionStrategy)
OnRetry()

작업 실행을 다시 시도하기 전에 호출된 메서드

(다음에서 상속됨 ExecutionStrategy)
ShouldRetryOn(Exception)

지정된 예외가 재시도로 보정될 수 있는 일시적인 오류를 나타내는지 여부를 결정합니다. 다시 시도할 추가 예외를 생성자에 전달할 수 있습니다.

ShouldVerifySuccessOn(Exception)

실행이 성공한 후 지정된 예외를 throw할 수 있는지 여부를 결정합니다.

(다음에서 상속됨 ExecutionStrategy)

확장 메서드

Execute(IExecutionStrategy, Action)

지정된 작업을 실행합니다.

Execute<TState>(IExecutionStrategy, TState, Action<TState>)

지정된 작업을 실행합니다.

Execute<TState>(IExecutionStrategy, Action<TState>, TState)

지정된 작업을 실행합니다.

Execute<TResult>(IExecutionStrategy, Func<TResult>)

지정된 작업을 실행하고 결과를 반환합니다.

Execute<TState,TResult>(IExecutionStrategy, TState, Func<TState,TResult>)

지정된 작업을 실행하고 결과를 반환합니다.

Execute<TState,TResult>(IExecutionStrategy, TState, Func<TState,TResult>, Func<TState,ExecutionResult<TResult>>)

지정된 작업을 실행하고 결과를 반환합니다.

Execute<TState,TResult>(IExecutionStrategy, Func<TState,TResult>, TState)

지정된 작업을 실행하고 결과를 반환합니다.

Execute<TState,TResult>(IExecutionStrategy, Func<TState,TResult>, Func<TState,ExecutionResult<TResult>>, TState)
사용되지 않음.

지정된 작업을 실행하고 결과를 반환합니다.

ExecuteAsync(IExecutionStrategy, Func<CancellationToken,Task>, CancellationToken)

지정된 비동기 작업을 실행합니다.

ExecuteAsync(IExecutionStrategy, Func<Task>)

지정된 비동기 작업을 실행합니다.

ExecuteAsync<TState>(IExecutionStrategy, TState, Func<TState,CancellationToken,Task>, CancellationToken)

지정된 비동기 작업을 실행합니다.

ExecuteAsync<TState>(IExecutionStrategy, TState, Func<TState,Task>)

지정된 비동기 작업을 실행합니다.

ExecuteAsync<TState>(IExecutionStrategy, Func<TState,CancellationToken,Task>, TState, CancellationToken)

지정된 비동기 작업을 실행합니다.

ExecuteAsync<TState>(IExecutionStrategy, Func<TState,Task>, TState)

지정된 비동기 작업을 실행합니다.

ExecuteAsync<TResult>(IExecutionStrategy, Func<CancellationToken,Task<TResult>>, CancellationToken)

지정된 비동기 작업을 실행하고 결과를 반환합니다.

ExecuteAsync<TResult>(IExecutionStrategy, Func<Task<TResult>>)

지정된 비동기 작업을 실행하고 결과를 반환합니다.

ExecuteAsync<TState,TResult>(IExecutionStrategy, TState, Func<TState, CancellationToken,Task<TResult>>, Func<TState,CancellationToken, Task<ExecutionResult<TResult>>>, CancellationToken)

지정된 비동기 작업을 실행하고 결과를 반환합니다.

ExecuteAsync<TState,TResult>(IExecutionStrategy, TState, Func<TState,CancellationToken,Task<TResult>>, CancellationToken)

지정된 비동기 작업을 실행하고 결과를 반환합니다.

ExecuteAsync<TState,TResult>(IExecutionStrategy, TState, Func<TState,Task<TResult>>)

지정된 비동기 작업을 실행하고 결과를 반환합니다.

ExecuteAsync<TState,TResult>(IExecutionStrategy, Func<TState,CancellationToken,Task<TResult>>, TState, CancellationToken)

지정된 비동기 작업을 실행하고 결과를 반환합니다.

ExecuteAsync<TState,TResult>(IExecutionStrategy, Func<TState,Task<TResult>>, TState)

지정된 비동기 작업을 실행하고 결과를 반환합니다.

ExecuteInTransaction(IExecutionStrategy, Action, Func<Boolean>)

트랜잭션에서 지정된 작업을 실행합니다. 커밋 중에 오류가 발생하는 경우 트랜잭션이 롤백되었는지 여부를 검사 수 있습니다.

ExecuteInTransaction<TState>(IExecutionStrategy, TState, Action<TState>, Func<TState,Boolean>)

트랜잭션에서 지정된 작업을 실행합니다. 커밋 중에 오류가 발생하는 경우 트랜잭션이 롤백되었는지 여부를 검사 수 있습니다.

ExecuteInTransaction<TResult>(IExecutionStrategy, Func<TResult>, Func<Boolean>)

트랜잭션에서 지정된 작업을 실행하고 결과를 반환합니다. 커밋 중에 오류가 발생하는 경우 트랜잭션이 롤백되었는지 여부를 검사 수 있습니다.

ExecuteInTransaction<TState,TResult>(IExecutionStrategy, TState, Func<TState,TResult>, Func<TState,Boolean>)

트랜잭션에서 지정된 작업을 실행하고 결과를 반환합니다. 커밋 중에 오류가 발생하는 경우 트랜잭션이 롤백되었는지 여부를 검사 수 있습니다.

ExecuteInTransaction<TState,TResult>(IExecutionStrategy, Func<TState,TResult>, Func<TState,Boolean>, TState, DbContext)

트랜잭션에서 지정된 작업을 실행하고 커밋한 후 결과를 반환합니다.

ExecuteInTransactionAsync(IExecutionStrategy, Func<CancellationToken,Task>, Func<CancellationToken,Task<Boolean>>, CancellationToken)

트랜잭션에서 지정된 비동기 작업을 실행합니다. 커밋 중에 오류가 발생하는 경우 트랜잭션이 롤백되었는지 여부를 검사 수 있습니다.

ExecuteInTransactionAsync(IExecutionStrategy, Func<Task>, Func<Task<Boolean>>)

트랜잭션에서 지정된 비동기 작업을 실행합니다. 커밋 중에 오류가 발생하는 경우 트랜잭션이 롤백되었는지 여부를 검사 수 있습니다.

ExecuteInTransactionAsync<TState>(IExecutionStrategy, TState, Func<TState,CancellationToken,Task>, Func<TState,CancellationToken, Task<Boolean>>, CancellationToken)

트랜잭션에서 지정된 비동기 작업을 실행합니다. 커밋 중에 오류가 발생하는 경우 트랜잭션이 롤백되었는지 여부를 검사 수 있습니다.

ExecuteInTransactionAsync<TResult>(IExecutionStrategy, Func<CancellationToken, Task<TResult>>, Func<CancellationToken,Task<Boolean>>, CancellationToken)

트랜잭션에서 지정된 비동기 작업을 실행하고 결과를 반환합니다. 커밋 중에 오류가 발생하는 경우 트랜잭션이 롤백되었는지 여부를 검사 수 있습니다.

ExecuteInTransactionAsync<TState,TResult>(IExecutionStrategy, TState, Func<TState,CancellationToken,Task<TResult>>, Func<TState, CancellationToken,Task<Boolean>>, CancellationToken)

트랜잭션에서 지정된 비동기 작업을 실행하고 결과를 반환합니다. 커밋 중에 오류가 발생하는 경우 트랜잭션이 롤백되었는지 여부를 검사 수 있습니다.

ExecuteInTransactionAsync<TState,TResult>(IExecutionStrategy, Func<TState,CancellationToken,Task<TResult>>, Func<TState,CancellationToken, Task<Boolean>>, TState, DbContext, CancellationToken)

지정된 비동기 작업을 실행하고 결과를 반환합니다.

ExecuteInTransaction(IExecutionStrategy, Action, Func<Boolean>, IsolationLevel)

트랜잭션에서 지정된 작업을 실행합니다. 커밋 중에 오류가 발생하는 경우 트랜잭션이 롤백되었는지 여부를 검사 수 있습니다.

ExecuteInTransaction<TState>(IExecutionStrategy, TState, Action<TState>, Func<TState,Boolean>, IsolationLevel)

트랜잭션에서 지정된 작업을 실행합니다. 커밋 중에 오류가 발생하는 경우 트랜잭션이 롤백되었는지 여부를 검사 수 있습니다.

ExecuteInTransaction<TResult>(IExecutionStrategy, Func<TResult>, Func<Boolean>, IsolationLevel)

트랜잭션에서 지정된 작업을 실행하고 결과를 반환합니다. 커밋 중에 오류가 발생하는 경우 트랜잭션이 롤백되었는지 여부를 검사 수 있습니다.

ExecuteInTransaction<TState,TResult>(IExecutionStrategy, TState, Func<TState,TResult>, Func<TState,Boolean>, IsolationLevel)

트랜잭션에서 지정된 작업을 실행하고 결과를 반환합니다. 커밋 중에 오류가 발생하는 경우 트랜잭션이 롤백되었는지 여부를 검사 수 있습니다.

ExecuteInTransactionAsync(IExecutionStrategy, Func<CancellationToken,Task>, Func<CancellationToken,Task<Boolean>>, IsolationLevel, CancellationToken)

트랜잭션에서 지정된 비동기 작업을 실행합니다. 커밋 중에 오류가 발생하는 경우 트랜잭션이 롤백되었는지 여부를 검사 수 있습니다.

ExecuteInTransactionAsync(IExecutionStrategy, Func<Task>, Func<Task<Boolean>>, IsolationLevel)

트랜잭션에서 지정된 비동기 작업을 실행합니다. 커밋 중에 오류가 발생하는 경우 트랜잭션이 롤백되었는지 여부를 검사 수 있습니다.

ExecuteInTransactionAsync<TState>(IExecutionStrategy, TState, Func<TState,CancellationToken,Task>, Func<TState,CancellationToken, Task<Boolean>>, IsolationLevel, CancellationToken)

트랜잭션에서 지정된 비동기 작업을 실행합니다. 커밋 중에 오류가 발생하는 경우 트랜잭션이 롤백되었는지 여부를 검사 수 있습니다.

ExecuteInTransactionAsync<TResult>(IExecutionStrategy, Func<CancellationToken, Task<TResult>>, Func<CancellationToken,Task<Boolean>>, IsolationLevel, CancellationToken)

트랜잭션에서 지정된 비동기 작업을 실행하고 결과를 반환합니다. 커밋 중에 오류가 발생하는 경우 트랜잭션이 롤백되었는지 여부를 검사 수 있습니다.

ExecuteInTransactionAsync<TState,TResult>(IExecutionStrategy, TState, Func<TState,CancellationToken,Task<TResult>>, Func<TState, CancellationToken,Task<Boolean>>, IsolationLevel, CancellationToken)

지정된 비동기 작업을 실행하고 결과를 반환합니다. 커밋 중에 오류가 발생하는 경우 트랜잭션이 롤백되었는지 여부를 검사 수 있습니다.

적용 대상