async/待って簡単にC


非同期プログラミングでは、失敗した場合にメソッドを再試行する必要があります.Easy-Retry この機能を簡単に提供できます:)

NuGet インストール

GitHub ソースコード
.Net CLI
dotnet add package EasyRetry

Package Manager
Install-Package EasyRetry


用途
失敗した場合に再試行する必要があるHTTPタスクがあるとしましょう
private async Task Task_NetworkBound()
{
    await new HttpClient().GetStringAsync("https://dotnetfoundation.org");
}
ために5秒後に再試行するには、次のように行う必要があります
//With DI
await _easyRetry.Retry(async () => await Task_NetworkBound());

//Without DI
await new EasyRetry().Retry(async () => await Task_NetworkBound());
または、次のようにリトライアルゴリズムの動作をカスタマイズするには、再試行オプションを使用できます
await _easyRetry.Retry(async () => await Task_NetworkBound()
    , new RetryOptions()
    {
        Attempts = 3,
        DelayBetweenRetries = TimeSpan.FromSeconds(3),
        DelayBeforeFirstTry = TimeSpan.FromSeconds(2),
        EnableLogging = true,
        DoNotRetryOnTheseExceptionTypes = new List<Type>()
        {
            typeof(NullReferenceException)
        }
    });

NuGet インストール

GitHub ソースコード