in src/nms-api/policies/RedeliveryPolicy.cs [65:93]
public virtual int RedeliveryDelay(int redeliveredCounter)
{
int delay = 0;
if (redeliveredCounter == 0)
{
// The first time through there is no delay, the Rollback should be immediate.
return 0;
}
if (UseExponentialBackOff && BackOffMultiplier > 1)
{
delay = initialRedeliveryDelay * Convert.ToInt32(Math.Pow(BackOffMultiplier, redeliveredCounter - 1));
}
else
{
delay = InitialRedeliveryDelay;
}
if (UseCollisionAvoidance)
{
Random random = RandomNumberGenerator;
double variance = (NextBool ? collisionAvoidanceFactor : collisionAvoidanceFactor *= -1) *
random.NextDouble();
delay += Convert.ToInt32(Convert.ToDouble(delay) * variance);
}
return delay;
}