pip_services3_components.lock.ILock module

class pip_services3_components.lock.ILock.ILock

Bases: abc.ABC

Interface for locks to synchronize work or parallel processes and to prevent collisions.

The lock allows to manage multiple locks identified by unique keys.

acquire_lock(correlation_id: Optional[str], key: str, ttl: int, timeout: int)

Releases prevously acquired lock by its key.

Parameters
  • correlation_id – (optional) transaction id to trace execution through call chain.

  • key – a unique lock key to acquire.

  • ttl – a lock timeout (time to live) in milliseconds.

  • timeout – lock timeout

release_lock(correlation_id: Optional[str], key: str)

Releases prevously acquired lock by its key.

Parameters
  • correlation_id – (optional) transaction id to trace execution through call chain.

  • key – a unique lock key to acquire.

try_acquire_lock(correlation_id: Optional[str], key: str, ttl: int)bool

Makes a single attempt to acquire a lock by its key. It returns immediately a positive or negative result.

Parameters
  • correlation_id – (optional) transaction id to trace execution through call chain.

  • key – a unique lock key to acquire.

  • ttl – a lock timeout (time to live) in milliseconds.

Returns

lock result