object Throttle

Transform a service to reject any calls the go over a given rate.

Source
Throttle.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Throttle
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. sealed abstract class TokenAvailability extends Product with Serializable
  2. trait TokenBucket[F[_]] extends AnyRef

    A token bucket for use with the Throttle middleware.

    A token bucket for use with the Throttle middleware. Consumers can take tokens which will be refilled over time. Implementations are required to provide their own refill mechanism.

    Possible implementations include a remote TokenBucket service to coordinate between different application instances.

  3. final case class TokenUnavailable(retryAfter: Option[FiniteDuration]) extends TokenAvailability with Product with Serializable

Value Members

  1. def apply[F[_], G[_]](bucket: TokenBucket[F], throttleResponse: (Option[FiniteDuration]) ⇒ Response[G] = defaultResponse[G])(http: Http[F, G])(implicit F: Monad[F]): Http[F, G]

    Limits the supplied service using a provided TokenBucket

    Limits the supplied service using a provided TokenBucket

    bucket

    a TokenBucket to use to track the rate of incoming requests.

    throttleResponse

    a function that defines the response when throttled, may be supplied a suggested retry time depending on bucket implementation.

    http

    the service to transform.

    returns

    a task containing the transformed service.

  2. def apply[F[_], G[_]](amount: Int, per: FiniteDuration)(http: Http[F, G])(implicit F: Temporal[F]): F[Http[F, G]]

    Limits the supplied service to a given rate of calls using an in-memory TokenBucket

    Limits the supplied service to a given rate of calls using an in-memory TokenBucket

    amount

    the number of calls to the service to permit within the given time period.

    per

    the time period over which a given number of calls is permitted.

    http

    the service to transform.

    returns

    a task containing the transformed service.

  3. def defaultResponse[F[_]](retryAfter: Option[FiniteDuration]): Response[F]
  4. object TokenAvailable extends TokenAvailability with Product with Serializable
  5. object TokenBucket