RetryPolicies

retry.RetryPolicies
object RetryPolicies

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Members list

Value members

Concrete methods

def alwaysGiveUp[M[_] : Applicative]: RetryPolicy[M]

Don't retry at all and always give up. Only really useful for combining with other policies.

Don't retry at all and always give up. Only really useful for combining with other policies.

Attributes

def capDelay[M[_] : Applicative](cap: FiniteDuration, policy: RetryPolicy[M]): RetryPolicy[M]

Set an upper bound on any individual delay produced by the given policy.

Set an upper bound on any individual delay produced by the given policy.

Attributes

def constantDelay[M[_] : Applicative](delay: FiniteDuration): RetryPolicy[M]

Delay by a constant amount before each retry. Never give up.

Delay by a constant amount before each retry. Never give up.

Attributes

def exponentialBackoff[M[_] : Applicative](baseDelay: FiniteDuration): RetryPolicy[M]

Each delay is twice as long as the previous one. Never give up.

Each delay is twice as long as the previous one. Never give up.

Attributes

def fibonacciBackoff[M[_] : Applicative](baseDelay: FiniteDuration): RetryPolicy[M]

Delay(n) = Delay(n - 2) + Delay(n - 1)

Delay(n) = Delay(n - 2) + Delay(n - 1)

e.g. if baseDelay is 10 milliseconds, the delays before each retry will be 10 ms, 10 ms, 20 ms, 30ms, 50ms, 80ms, 130ms, ...

Attributes

def fullJitter[M[_] : Applicative](baseDelay: FiniteDuration): RetryPolicy[M]

"Full jitter" backoff algorithm. See https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/

Attributes

def limitRetries[M[_] : Applicative](maxRetries: Int): RetryPolicy[M]

Retry without delay, giving up after the given number of retries.

Retry without delay, giving up after the given number of retries.

Attributes

def limitRetriesByCumulativeDelay[M[_] : Applicative](threshold: FiniteDuration, policy: RetryPolicy[M]): RetryPolicy[M]

Add an upperbound to a policy such that once the cumulative delay over all retries has reached or exceeded the given limit, the policy will stop retrying and give up.

Add an upperbound to a policy such that once the cumulative delay over all retries has reached or exceeded the given limit, the policy will stop retrying and give up.

Attributes

def limitRetriesByDelay[M[_] : Applicative](threshold: FiniteDuration, policy: RetryPolicy[M]): RetryPolicy[M]

Add an upper bound to a policy such that once the given time-delay amount per try has been reached or exceeded, the policy will stop retrying and give up. If you need to stop retrying once cumulative delay reaches a time-delay amount, use limitRetriesByCumulativeDelay.

Add an upper bound to a policy such that once the given time-delay amount per try has been reached or exceeded, the policy will stop retrying and give up. If you need to stop retrying once cumulative delay reaches a time-delay amount, use limitRetriesByCumulativeDelay.

Attributes