class DurationLimiterBuilder (View source)

Traits

Properties

Connection $connection

The Redis connection.

string $name

The name of the lock.

int $maxLocks

The maximum number of locks that can obtained per time window.

int $decay

The amount of time the lock window is maintained.

int $timeout

The amount of time to block until a lock is available.

Methods

int
secondsUntil(DateTimeInterface|DateInterval|int $delay)

Get the number of seconds until the given DateTime.

int
availableAt(DateTimeInterface|DateInterval|int $delay = 0)

Get the "available at" UNIX timestamp.

parseDateInterval(DateTimeInterface|DateInterval|int $delay)

If the given value is an interval, convert it to a DateTime instance.

int
currentTime()

Get the current system time as a UNIX timestamp.

void
__construct(Connection $connection, string $name)

Create a new builder instance.

$this
allow(int $maxLocks)

Set the maximum number of locks that can obtained per time window.

$this
every(int $decay)

Set the amount of time the lock window is maintained.

$this
block(int $timeout)

Set the amount of time to block until a lock is available.

mixed
then(callable $callback, callable $failure = null)

Execute the given callback if a lock is obtained, otherwise call the failure callback.

Details

protected int secondsUntil(DateTimeInterface|DateInterval|int $delay)

Get the number of seconds until the given DateTime.

Parameters

DateTimeInterface|DateInterval|int $delay

Return Value

int

protected int availableAt(DateTimeInterface|DateInterval|int $delay = 0)

Get the "available at" UNIX timestamp.

Parameters

DateTimeInterface|DateInterval|int $delay

Return Value

int

protected DateTimeInterface|int parseDateInterval(DateTimeInterface|DateInterval|int $delay)

If the given value is an interval, convert it to a DateTime instance.

Parameters

DateTimeInterface|DateInterval|int $delay

Return Value

DateTimeInterface|int

protected int currentTime()

Get the current system time as a UNIX timestamp.

Return Value

int

void __construct(Connection $connection, string $name)

Create a new builder instance.

Parameters

Connection $connection
string $name

Return Value

void

$this allow(int $maxLocks)

Set the maximum number of locks that can obtained per time window.

Parameters

int $maxLocks

Return Value

$this

$this every(int $decay)

Set the amount of time the lock window is maintained.

Parameters

int $decay

Return Value

$this

$this block(int $timeout)

Set the amount of time to block until a lock is available.

Parameters

int $timeout

Return Value

$this

mixed then(callable $callback, callable $failure = null)

Execute the given callback if a lock is obtained, otherwise call the failure callback.

Parameters

callable $callback
callable $failure

Return Value

mixed

Exceptions

LimiterTimeoutException