Abstract lock that implements the default lock acquisition routine.
Implements: ILock, IReconfigurable
Description
The Lock class represents an abstract lock that implements the defaul lock acquisition routine.
Configuration parameters
options:
- retry_timeout: timeout in milliseconds to retry lock acquisition. (Default: 100)
Instance methods
acquire_lock
Makes multiple attempts to acquire a lock by its key within a given time interval.
acquire_lock(context: Optional[IContext], key: str, ttl: int, timeout: int)
- context: IContext - (optional) a context to trace execution through a call chain.
- key: str - a unique lock key to acquire.
- ttl: int - a lock timeout (time to live) in milliseconds.
- timeout: int - a lock acquisition timeout.
configure
Configures component by passing configuration parameters.
configure(config: ConfigParams)
- config: ConfigParams - configuration parameters to be set.
Abstract methods
release_lock
Releases a prevously acquired lock by its key.
abstractmethodrelease_lock(context: Optional[IContext], key: str)
- context: IContext - (optional) a context to trace execution through a call chain.
- key: str - a unique lock key to release.
try_acquire_lock
Makes a single attempt to acquire a lock by its key. It returns immediately a positive or negative result.
abstractmethodtry_acquire_lock(context: Optional[IContext], key: str, ttl: int): bool
- context: IContext - (optional) a context to trace execution through a call chain.
- key: str - a unique lock key to acquire.
- ttl: int - a lock timeout (time to live) in milliseconds.
- returns: bool - lock result