Throttle

org.http4s.server.middleware.Throttle$
object Throttle

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

Attributes

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

Members list

Concise view

Type members

Classlikes

sealed abstract class TokenAvailability extends Product with Serializable

Attributes

Source:
Throttle.scala
Graph
Supertypes
trait Product
trait Equals
class Object
trait Matchable
class Any
Known subtypes
case object TokenAvailable extends TokenAvailability

Attributes

Source:
Throttle.scala
Graph
Supertypes
trait Singleton
trait Product
trait Mirror
trait Product
trait Equals
class Object
trait Matchable
class Any
Self type

Attributes

Companion:
trait
Source:
Throttle.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
trait TokenBucket[F[_]]

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.

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.

Attributes

Companion:
object
Source:
Throttle.scala
Graph
Supertypes
class Object
trait Matchable
class Any

Attributes

Source:
Throttle.scala
Graph
Supertypes
trait Product
trait Equals
class Object
trait Matchable
class Any

Value members

Concrete methods

def apply[F[_] : Temporal, G[_]](amount: Int, per: FiniteDuration)(http: Http[F, G]): 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

Attributes

amount

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

http

the service to transform.

per

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

Returns:

a task containing the transformed service.

Source:
Throttle.scala
def apply[F[_], G[_]](bucket: TokenBucket[F], throttleResponse: Option[FiniteDuration] => Response[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

Attributes

bucket

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

http

the service to transform.

throttleResponse

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

Returns:

a task containing the transformed service.

Source:
Throttle.scala

As [apply(amount,per)], but for HttpApp[F]

As [apply(amount,per)], but for HttpApp[F]

Attributes

Source:
Throttle.scala

As [apply(amount,per)], but for HttpRoutes[F]

As [apply(amount,per)], but for HttpRoutes[F]

Attributes

Source:
Throttle.scala

Deprecated methods

def httpAapp[F[_]](amount: Int, per: FiniteDuration)(httpApp: HttpApp[F])(implicit F: Temporal[F]): F[HttpApp[F]]

Attributes

Deprecated
true
Source:
Throttle.scala