Throttle
Transform a service to reject any calls the go over a given rate.
Type members
Classlikes
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.
- Companion:
- object
Value members
Concrete methods
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
- Value parameters:
- 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.
Limits the supplied service using a provided TokenBucket
Limits the supplied service using a provided TokenBucket
- Value parameters:
- 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.
As [apply(bucket,throttleResponse)], but for HttpApp[F]
As [apply(bucket,throttleResponse)], but for HttpApp[F]
As [apply(amount,per)], but for HttpRoutes[F]
As [apply(amount,per)], but for HttpRoutes[F]
As [apply(bucket,throttleResponse)], but for HttpRoutes[F]
As [apply(bucket,throttleResponse)], but for HttpRoutes[F]