LeakyBucket
class LeakyBucket extends AdmissionPolicy
Constants
| MAX_INTEGER |
The largest integer represented exactly by every first-party store. |
Methods
Create a new leaky-bucket limit.
Apply the policy without a named limiter scope.
Set the callback that determines whether the operation should be consumed.
Set the callback that generates a response when the limit is exceeded.
Create a copy with the given shared policy values.
Convert a caller key to its canonical string value.
Validate a positive shared integer.
Multiply positive rate limit values without losing integer precision.
Create a new per-second leaky-bucket limit.
Create a new per-minute leaky-bucket limit.
Create a new leaky-bucket limit using minutes as the period.
Create a new per-hour leaky-bucket limit.
Create a new per-day leaky-bucket limit.
Set the immediately available capacity.
Details
at line 15
__construct(int $rate, int $periodMicroseconds, int $burst, string $key = '', int $cost = 1, bool $global = false, Closure|null $afterCallback = null, Closure|null $responseCallback = null)
Create a new leaky-bucket limit.
in
AdmissionPolicy at line 37
AdmissionPolicy
by(Stringable|UnitEnum|string|int|null $key)
Set the key of the rate limit.
in
AdmissionPolicy at line 51
AdmissionPolicy
cost(int $cost)
Set the capacity consumed by each operation.
in
AdmissionPolicy at line 70
AdmissionPolicy
globally(bool $global = true)
Apply the policy without a named limiter scope.
in
AdmissionPolicy at line 84
AdmissionPolicy
after(callable $callback)
Set the callback that determines whether the operation should be consumed.
in
AdmissionPolicy at line 98
AdmissionPolicy
response(callable $callback)
Set the callback that generates a response when the limit is exceeded.
at line 125
protected AdmissionPolicy
newInstance(string $key, int $cost, bool $global, Closure|null $afterCallback, Closure|null $responseCallback)
Create a copy with the given shared policy values.
in
AdmissionPolicy at line 123
protected string
normalizeKey(Stringable|UnitEnum|string|int|null $key)
Convert a caller key to its canonical string value.
in
AdmissionPolicy at line 135
static protected void
ensurePositive(string $name, int $value)
Validate a positive shared integer.
in
AdmissionPolicy at line 149
static protected int
multiply(int $value, int $multiplier, string $name)
Multiply positive rate limit values without losing integer precision.
at line 50
static LeakyBucket
perSecond(int $rate, int $periodSeconds = 1)
Create a new per-second leaky-bucket limit.
at line 62
static LeakyBucket
perMinute(int $rate, int $periodMinutes = 1)
Create a new per-minute leaky-bucket limit.
at line 74
static LeakyBucket
perMinutes(int $periodMinutes, int $rate)
Create a new leaky-bucket limit using minutes as the period.
at line 82
static LeakyBucket
perHour(int $rate, int $periodHours = 1)
Create a new per-hour leaky-bucket limit.
at line 94
static LeakyBucket
perDay(int $rate, int $periodDays = 1)
Create a new per-day leaky-bucket limit.
at line 106
LeakyBucket
burst(int $capacity)
Set the immediately available capacity.