DurationLimiter
class DurationLimiter (View source)
Properties
int | $decaysAt | The timestamp of the end of the current duration. |
|
int | $remaining | The number of remaining slots. |
Methods
Create a new duration limiter instance.
Attempt to acquire the lock for the given number of seconds.
Attempt to acquire the lock.
Determine if the key has been "accessed" too many times.
Clear the limiter.
Get the Lua script for acquiring a lock.
Get the Lua script to determine if the key has been "accessed" too many times.
Details
void
__construct(Connection $redis, string $name, int $maxLocks, int $decay)
Create a new duration limiter instance.
mixed
block(int $timeout, callable|null $callback = null, int $sleep = 750)
Attempt to acquire the lock for the given number of seconds.
bool
acquire()
Attempt to acquire the lock.
bool
tooManyAttempts()
Determine if the key has been "accessed" too many times.
void
clear()
Clear the limiter.
protected string
luaScript()
Get the Lua script for acquiring a lock.
KEYS[1] - The limiter name ARGV[1] - Current time in microseconds ARGV[2] - Current time in seconds ARGV[3] - Duration of the bucket ARGV[4] - Allowed number of tasks
protected string
tooManyAttemptsLuaScript()
Get the Lua script to determine if the key has been "accessed" too many times.
KEYS[1] - The limiter name ARGV[1] - Current time in microseconds ARGV[2] - Current time in seconds ARGV[3] - Duration of the bucket ARGV[4] - Allowed number of tasks