Lock

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.

abstractmethod release_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.

abstractmethod try_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

See also