object RetryPolicy
- Source
- Retry.scala
- Alphabetic
- By Inheritance
- RetryPolicy
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
val
RetriableStatuses: Set[Status]
Statuses that are retriable, per HTTP spec
-
def
apply[F[_]](backoff: (Int) ⇒ Option[FiniteDuration], retriable: (Request[F], Either[Throwable, Response[F]]) ⇒ Boolean = defaultRetriable[F]): RetryPolicy[F]
Decomposes a retry policy into components that are typically configured individually.
Decomposes a retry policy into components that are typically configured individually.
- 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
.
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
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.
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def exponentialBackoff(maxWait: Duration, maxRetry: Int): (Int) ⇒ Option[FiniteDuration]
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
isErrorOrRetriableStatus[F[_]](result: Either[Throwable, Response[F]]): Boolean
Returns true if parameter is a Left or if the response contains a retriable status(as per HTTP spec)
-
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 -
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
def
recklesslyRetriable[F[_]](result: Either[Throwable, Response[F]]): Boolean
Like defaultRetriable, but returns true even if the request method is not idempotent.
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.
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()