Dreamine.Communication.Core
1.0.2
Dreamine.Communication.Core 통신 기능과 관련 API를 제공합니다.
Toggle main menu visibility
로딩중...
검색중...
일치하는것 없음
ReconnectDelayCalculator.cs
이 파일의 문서화 페이지로 가기
1
using
Dreamine.Communication.Abstractions.Options;
2
3
namespace
Dreamine.Communication.Core.Resilience
;
4
13
public
sealed
class
ReconnectDelayCalculator
14
{
23
private
readonly ReconnectPolicy
_policy
;
24
41
public
ReconnectDelayCalculator
(ReconnectPolicy? policy =
null
)
42
{
43
_policy
= policy ??
new
ReconnectPolicy();
44
}
45
70
public
TimeSpan
Calculate
(
int
attemptCount)
71
{
72
if
(attemptCount <= 1)
73
{
74
return
NormalizeDelay
(
_policy
.InitialDelay);
75
}
76
77
var initialMilliseconds = Math.Max(1,
_policy
.InitialDelay.TotalMilliseconds);
78
var factor = Math.Max(1,
_policy
.BackoffFactor);
79
var calculatedMilliseconds = initialMilliseconds * Math.Pow(factor, attemptCount - 1);
80
var maxMilliseconds = Math.Max(
81
initialMilliseconds,
82
_policy
.MaxDelay.TotalMilliseconds);
83
84
var finalMilliseconds = Math.Min(calculatedMilliseconds, maxMilliseconds);
85
86
return
TimeSpan.FromMilliseconds(finalMilliseconds);
87
}
88
113
private
static
TimeSpan
NormalizeDelay
(TimeSpan delay)
114
{
115
if
(delay <= TimeSpan.Zero)
116
{
117
return
TimeSpan.FromMilliseconds(1);
118
}
119
120
return
delay;
121
}
122
}
Dreamine.Communication.Core.Resilience
Definition
ReconnectDelayCalculator.cs:3
Dreamine.Communication.Core.Resilience.ReconnectDelayCalculator.NormalizeDelay
static TimeSpan NormalizeDelay(TimeSpan delay)
Definition
ReconnectDelayCalculator.cs:113
Dreamine.Communication.Core.Resilience.ReconnectDelayCalculator.ReconnectDelayCalculator
ReconnectDelayCalculator(ReconnectPolicy? policy=null)
Definition
ReconnectDelayCalculator.cs:41
Dreamine.Communication.Core.Resilience.ReconnectDelayCalculator.Calculate
TimeSpan Calculate(int attemptCount)
Definition
ReconnectDelayCalculator.cs:70
Dreamine.Communication.Core.Resilience.ReconnectDelayCalculator._policy
readonly ReconnectPolicy _policy
Definition
ReconnectDelayCalculator.cs:23
Resilience
ReconnectDelayCalculator.cs
다음에 의해 생성됨 :
1.17.0