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[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
def
defaultRetriable[F[_]](req: Request[F], result: Either[Throwable, Response[F]]): Boolean
Default logic for whether a request is retriable.
Default logic for whether a request is retriable. Returns true if the request method does not permit a body and the result is either a throwable or has one of the
RetriableStatuses
.Caution: more restrictive than 0.16. That would inspect the body for effects, and resumbmit only if the body was pure (i.e., only emits and halts). The fs2 algebra does not let us inspect the stream for effects, so we can't safely resubmit. For the old behavior, use unsafeRetriable. To ignore the response codes, see recklesslyRetriable.
-
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[java.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()
-
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 unsafeRetriable, but returns true even if the request method is not idempotent.
Like unsafeRetriable, 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
-
def
unsafeRetriable[F[_]](req: Request[F], result: Either[Throwable, Response[F]]): Boolean
Returns true if the request method is idempotent and the result is either a throwable or has one of the
RetriableStatuses
.Returns true if the request method is idempotent and the result is either a throwable or has one of the
RetriableStatuses
. This is thedefaultRetriable
behavior from 0.16.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
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
- @native() @throws( ... )