Limiter
class Limiter
Methods
Atomically consume capacity from an admission policy.
Consume a group, returning decisions through the first denied policy.
Inspect a policy without mutating its state.
Execute a callback when the policy allows it.
Record a failure against a backoff policy.
Clear the state for an identically parameterized policy.
Validate a fixed-window policy and return its maximum state duration.
Validate a sliding-window policy and return its maximum state duration.
Validate a leaky-bucket policy and return its maximum state duration.
Ensure current-time arithmetic fits every first-party store.
Resolve the physical state key for a policy.
Create an unlimited admission result.
Details
at line 20
__construct(Store $store, KeyResolver $keyResolver)
Create a new limiter wrapper.
at line 29
Store
getStore()
Get the underlying rate limiter store.
at line 41
LimitResult
consume(AdmissionPolicy $policy, UnitEnum|string|null $limiterName = null)
Atomically consume capacity from an admission policy.
at line 66
array
consumeMany(array $policies, UnitEnum|string|null $limiterName = null)
Consume a group, returning decisions through the first denied policy.
Groups are atomic except on Redis Cluster, where a concurrent denial during consumption may leave earlier policies charged.
at line 105
CooldownResult
block(Cooldown $cooldown, int $seconds, UnitEnum|string|null $limiterName = null)
Atomically extend a cooldown block.
at line 130
LimitResult|BackoffResult|CooldownResult
inspect(AdmissionPolicy|Backoff|Cooldown $policy, UnitEnum|string|null $limiterName = null)
Inspect a policy without mutating its state.
at line 156
mixed
attempt(AdmissionPolicy $policy, Closure $callback, UnitEnum|string|null $limiterName = null)
Execute a callback when the policy allows it.
at line 173
BackoffResult
recordFailure(Backoff $backoff, UnitEnum|string|null $limiterName = null)
Record a failure against a backoff policy.
at line 188
bool
clear(AdmissionPolicy|Backoff|Cooldown $policy, UnitEnum|string|null $limiterName = null)
Clear the state for an identically parameterized policy.
at line 202
protected void
validateAdmission(AdmissionPolicy $policy)
Validate admission constraints shared by every store.
at line 220
protected int
validateFixedWindow(Limit $policy)
Validate a fixed-window policy and return its maximum state duration.
at line 234
protected int
validateSlidingWindow(SlidingWindow $policy)
Validate a sliding-window policy and return its maximum state duration.
at line 248
protected int
validateLeakyBucket(LeakyBucket $policy)
Validate a leaky-bucket policy and return its maximum state duration.
at line 265
protected void
validateTimeRange(int $durationMicroseconds)
Ensure current-time arithmetic fits every first-party store.
at line 282
protected string
resolveKey(AdmissionPolicy|Backoff|Cooldown $policy, UnitEnum|string|null $limiterName)
Resolve the physical state key for a policy.
at line 296
protected LimitResult
unlimitedResult()
Create an unlimited admission result.