1
0
mirror of https://github.com/RaidMax/IW4M-Admin.git synced 2025-06-10 23:31:13 -05:00

Add command execution backoff/timeout

This commit is contained in:
RaidMax
2024-02-24 18:07:34 -06:00
parent 0f135337a9
commit aa83d88c77
3 changed files with 52 additions and 2 deletions

View File

@ -1339,6 +1339,14 @@ namespace SharedLibraryCore
return serviceCollection;
}
public static TimeSpan GetExponentialBackoffDelay(int retryCount, int staticDelay = 5)
{
var maxTimeout = TimeSpan.FromMinutes(2.1);
const double factor = 2.0;
var delay = Math.Min(staticDelay + Math.Pow(factor, retryCount - 1), maxTimeout.TotalSeconds);
return TimeSpan.FromSeconds(delay);
}
public static void ExecuteAfterDelay(TimeSpan duration, Func<CancellationToken, Task> action, CancellationToken token = default) =>
ExecuteAfterDelay((int)duration.TotalMilliseconds, action, token);