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 實例都會使用此服務自己的實例。 實作可能相依于任何存留期註冊的其他服務。 實作不需要安全線程。

如需詳細資訊 和範例,請參閱連線復原和資料庫重試

建構函式

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)

判斷指定的例外狀況是否可在成功執行之後擲回。

(繼承來源 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)

執行指定的非同步作業,並傳回結果。 允許檢查交易是否已在認可期間發生錯誤時回復。

適用於