RetryPolicy

org.http4s.client.middleware.RetryPolicy$

Attributes

Source:
Retry.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Members list

Concise view

Value members

Concrete methods

def apply[F[_]](backoff: Int => Option[FiniteDuration], retriable: (Request[F], Either[Throwable, Response[F]]) => Boolean): () => F

Decomposes a retry policy into components that are typically configured individually.

Decomposes a retry policy into components that are typically configured individually.

Attributes

backoff

a function of attempts to an optional FiniteDuration. Return None to stop retrying, or some duration after which the request will be retried. See exponentialBackoff for a useful implementation.

retriable

determines whether the request is retriable from the request and either the throwable or response that was returned. Defaults to defaultRetriable.

Source:
Retry.scala
def defaultRetriable[F[_]](req: Request[F], result: Either[Throwable, Response[F]]): Boolean

Returns true if (the request method is idempotent or request contains Idempotency-Key header) and the result is either a throwable or has one of the RetriableStatuses.

Returns true if (the request method is idempotent or request contains Idempotency-Key header) and the result is either a throwable or has one of the RetriableStatuses.

Caution: if the request body is effectful, the effects will be run twice. The most common symptom of this will be resubmitting an idempotent request.

Attributes

Source:
Retry.scala
def exponentialBackoff(maxWait: Duration, maxRetry: Int): Int => Option[FiniteDuration]

Attributes

Source:
Retry.scala

Returns true if parameter is a Left or if the response contains a retriable status(as per HTTP spec)

Returns true if parameter is a Left or if the response contains a retriable status(as per HTTP spec)

Attributes

Source:
Retry.scala
def isErrorOrStatus[F[_]](result: Either[Throwable, Response[F]], status: Set[Status]): Boolean

Like isErrorOrRetriableStatus but allows the caller to specify which statuses are considered retriable

Like isErrorOrRetriableStatus but allows the caller to specify which statuses are considered retriable

Attributes

Source:
Retry.scala

Like defaultRetriable, but returns true even if the request method is not idempotent. This is useful if failed requests are assumed to have not reached their destination, which is a dangerous assumption. Use at your own risk.

Like defaultRetriable, but returns true even if the request method is not idempotent. This is useful if failed requests are assumed to have not reached their destination, which is a dangerous assumption. Use at your own risk.

Caution: if the request body is effectful, the effects will be run twice. The most common symptom of this will be resubmitting an empty request body.

Attributes

Source:
Retry.scala

Concrete fields

Statuses that are retriable, per HTTP spec

Statuses that are retriable, per HTTP spec

Attributes

Source:
Retry.scala