prefect.locking
protocol
prefect.locking.protocol
Classes
LockManager
Methods:
acquire_lock
Acquire a lock for a transaction record with the given key. Will block other actors from updating this transaction record until the lock is released.
Args:
key
: Unique identifier for the transaction record.holder
: Unique identifier for the holder of the lock.acquire_timeout
: Max number of seconds to wait for the record to become available if it is locked while attempting to acquire a lock. Pass 0 to attempt to acquire a lock without waiting. Blocks indefinitely by default.hold_timeout
: Max number of seconds to hold the lock for. Holds the lock indefinitely by default.
Returns:
- True if the lock was successfully acquired; False otherwise.
release_lock
Releases the lock on the corresponding transaction record.
Args:
key
: Unique identifier for the transaction record.holder
: Unique identifier for the holder of the lock. Must match the holder provided when acquiring the lock.
is_locked
Simple check to see if the corresponding record is currently locked.
Args:
key
: Unique identifier for the transaction record.
Returns:
- True is the record is locked; False otherwise.
is_lock_holder
Check if the current holder is the lock holder for the transaction record.
Args:
key
: Unique identifier for the transaction record.holder
: Unique identifier for the holder of the lock.
Returns:
- True if the current holder is the lock holder; False otherwise.
wait_for_lock
Wait for the corresponding transaction record to become free.
Args:
key
: Unique identifier for the transaction record.timeout
: Maximum time to wait. None means to wait indefinitely.
Returns:
- True if the lock becomes free within the timeout; False otherwise.