class ConcurrencyLimiterBuilder (View source)

Traits

Properties

Connection $connection

The Redis connection.

string $name

The name of the lock.

int $maxLocks

The maximum number of entities that can hold the lock at the same time.

int $releaseAfter

The number of seconds to maintain the lock until it is automatically released.

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
limit(int $maxLocks)

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

$this
releaseAfter(int $releaseAfter)

Set the number of seconds until the lock will be released.

$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 limit(int $maxLocks)

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

Parameters

int $maxLocks

Return Value

$this

$this releaseAfter(int $releaseAfter)

Set the number of seconds until the lock will be released.

Parameters

int $releaseAfter

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

Laravel Cloud is the best place to deploy Laravel, Nuxt, Express, Hono, Node.js, Bun, Go, Flask, Python, and more, with dedicated infrastructure available on AWS through Laravel Private Cloud.