DatabaseLock
class DatabaseLock extends Lock (View source)
Traits
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. | |
| protected int | $defaultTimeoutInSeconds | The default number of seconds that a lock should be held. | 
Methods
Get the number of seconds until the given DateTime.
If the given value is an interval, convert it to a DateTime instance.
Given a start time, format the total run time for human readability.
Create a new lock instance.
Attempt to acquire the lock.
Release the lock.
Returns the owner value written into the driver for this lock.
Attempt to acquire the lock for the given number of seconds.
Determines whether this lock is allowed to release the lock in the driver.
Specify the number of milliseconds to sleep in between blocked lock acquisition attempts.
Get the UNIX timestamp indicating when the lock should expire.
Releases this lock in disregard of ownership.
Get the name of the database connection being used to manage the lock.
Details
        
                    protected        int
    secondsUntil(DateTimeInterface|DateInterval|int $delay)
        
    
    Get the number of seconds until the given DateTime.
        
                    protected        int
    availableAt(DateTimeInterface|DateInterval|int $delay = 0)
        
    
    Get the "available at" UNIX timestamp.
        
                    protected        DateTimeInterface|int
    parseDateInterval(DateTimeInterface|DateInterval|int $delay)
        
    
    If the given value is an interval, convert it to a DateTime instance.
        
                    protected        int
    currentTime()
        
    
    Get the current system time as a UNIX timestamp.
        
                    protected        string
    runTimeForHumans(float $startTime, float $endTime = null)
        
    
    Given a start time, format the total run time for human readability.
        
                            void
    __construct(Connection $connection, string $table, string $name, int $seconds, string|null $owner = null, array $lottery = [2, 100], $defaultTimeoutInSeconds = 86400)
        
    
    Create a new lock instance.
        
                            bool
    acquire()
        
    
    Attempt to acquire the lock.
        
                            bool
    release()
        
    
    Release the lock.
        
                    protected        string
    getCurrentOwner()
        
    
    Returns the owner value written into the driver for this lock.
        in 
Lock at line 89
                            mixed
    get(callable|null $callback = null)
        
    
    Attempt to acquire the lock.
        in 
Lock at line 113
                            mixed
    block(int $seconds, callable|null $callback = null)
        
    
    Attempt to acquire the lock for the given number of seconds.
        in 
Lock at line 141
                            string
    owner()
        
    
    Returns the current owner of the lock.
        in 
Lock at line 151
                            bool
    isOwnedByCurrentProcess()
        
    
    Determines whether this lock is allowed to release the lock in the driver.
        in 
Lock at line 162
                            $this
    betweenBlockedAttemptsSleepFor(int $milliseconds)
        
    
    Specify the number of milliseconds to sleep in between blocked lock acquisition attempts.
        
                    protected        int
    expiresAt()
        
    
    Get the UNIX timestamp indicating when the lock should expire.
        
                            void
    forceRelease()
        
    
    Releases this lock in disregard of ownership.
        
                            string
    getConnectionName()
        
    
    Get the name of the database connection being used to manage the lock.