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. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. 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.

  5. 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.

  6. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  7. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  8. def defaultResponse[F[_]](retryAfter: Option[FiniteDuration]): Response[F]
  9. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  10. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  11. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  12. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  13. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  14. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  15. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  16. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  17. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  18. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  19. def toString(): String
    Definition Classes
    AnyRef → Any
  20. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  21. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  22. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  23. object TokenAvailable extends TokenAvailability with Product with Serializable
  24. object TokenBucket

Inherited from AnyRef

Inherited from Any

Ungrouped