Async/Await easy retry in c#

Ali Alp
1 min readAug 24, 2020

In Asynchronous programming in some cases we need to retry a method if it fails. Easy-Retry can provide this functionality with ease :)

NuGet Installation

GitHub Source Code

.Net CLI
dotnet add package EasyRetry

Package Manager
Install-Package EasyRetry

Usage

Let's say there is a HTTP Task which you need to retry in case it fails

private async Task Task_NetworkBound()
{
await new HttpClient().GetStringAsync("https://dotnetfoundation.org");
}

In order to retry it after 5 seconds you just need to do as follows

//With DI
await _easyRetry.Retry(async () => await Task_NetworkBound());

//Without DI
await new EasyRetry().Retry(async () => await Task_NetworkBound());

Or you can use the retry options to customize the behavior of the retry algorithm as follows

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 Installation

GitHub Source Code

Happy Coding :)

--

--

Ali Alp

“Take it easy” is nonsense , take it as hard as you can and don’t let it go :)