W3cubDocs

/Laravel 8

DatabaseLock

class DatabaseLock extends Lock (View source)

Traits

InteractsWithTime

Properties

protected string $name The name of the lock. from Lock
protected int $seconds The number of seconds the lock should be maintained. from Lock
protected string $owner The scope identifier of this lock. from Lock
protected int $sleepMilliseconds The number of milliseconds to wait before re-attempting to acquire a lock while blocking. from Lock
protected Connection $connection The database connection instance.
protected string $table The database table name.
protected array $lottery The prune probability odds.

Methods

int secondsUntil(DateTimeInterface|DateInterval|int $delay)

Get the number of seconds until the given DateTime.

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

Get the "available at" UNIX timestamp.

from InteractsWithTime
DateTimeInterface|int parseDateInterval(DateTimeInterface|DateInterval|int $delay)

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

from InteractsWithTime
int currentTime()

Get the current system time as a UNIX timestamp.

from InteractsWithTime
void __construct(Connection $connection, string $table, string $name, int $seconds, string|null $owner = null, array $lottery = [2, 100])

Create a new lock instance.

bool acquire()

Attempt to acquire the lock.

void release()

Release the lock.

string getCurrentOwner()

Returns the owner value written into the driver for this lock.

mixed get(callable|null $callback = null)

Attempt to acquire the lock.

from Lock
bool block(int $seconds, callable|null $callback = null)

Attempt to acquire the lock for the given number of seconds.

from Lock
string owner()

Returns the current owner of the lock.

from Lock
bool isOwnedByCurrentProcess()

Determines whether this lock is allowed to release the lock in the driver.

from Lock
$this betweenBlockedAttemptsSleepFor(int $milliseconds)

Specify the number of milliseconds to sleep in between blocked lock aquisition attempts.

from Lock
int expiresAt()

Get the UNIX timestamp indicating when the lock should expire.

void forceRelease()

Releases this lock in disregard of ownership.

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 $table, string $name, int $seconds, string|null $owner = null, array $lottery = [2, 100])

Create a new lock instance.

Parameters

Connection $connection
string $table
string $name
int $seconds
string|null $owner
array $lottery

Return Value

void

bool acquire()

Attempt to acquire the lock.

Return Value

bool

void release()

Release the lock.

Return Value

void

protected string getCurrentOwner()

Returns the owner value written into the driver for this lock.

Return Value

string

mixed get(callable|null $callback = null)

Attempt to acquire the lock.

Parameters

callable|null $callback

Return Value

mixed

bool block(int $seconds, callable|null $callback = null)

Attempt to acquire the lock for the given number of seconds.

Parameters

int $seconds
callable|null $callback

Return Value

bool

Exceptions

LockTimeoutException

string owner()

Returns the current owner of the lock.

Return Value

string

protected bool isOwnedByCurrentProcess()

Determines whether this lock is allowed to release the lock in the driver.

Return Value

bool

$this betweenBlockedAttemptsSleepFor(int $milliseconds)

Specify the number of milliseconds to sleep in between blocked lock aquisition attempts.

Parameters

int $milliseconds

Return Value

$this

protected int expiresAt()

Get the UNIX timestamp indicating when the lock should expire.

Return Value

int

void forceRelease()

Releases this lock in disregard of ownership.

Return Value

void

© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/8.x/Illuminate/Cache/DatabaseLock.html