userver: storages::mongo::DistLockStrategy Class Reference
⚠️ This is the documentation for an old userver version. Click here to switch to the latest version.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
storages::mongo::DistLockStrategy Class Referencefinal

#include <userver/storages/mongo/dist_lock_strategy.hpp>

Detailed Description

Strategy for mongodb-based distributed locking.

Definition at line 14 of file dist_lock_strategy.hpp.

+ Inheritance diagram for storages::mongo::DistLockStrategy:
+ Collaboration diagram for storages::mongo::DistLockStrategy:

Public Member Functions

 DistLockStrategy (Collection collection, std::string lock_name)
 Targets a distributed lock in a specified collection as a host.
 
 DistLockStrategy (Collection collection, std::string lock_name, std::string owner)
 
void Acquire (std::chrono::milliseconds lock_ttl, const std::string &locker_id) override
 
void Release (const std::string &locker_id) override
 

Member Function Documentation

◆ Acquire()

void storages::mongo::DistLockStrategy::Acquire ( std::chrono::milliseconds lock_ttl,
const std::string & locker_id )
overridevirtual

Acquires the distributed lock.

Parameters
lock_ttlThe duration for which the lock must be held.
locker_idGlobally unique ID of the locking entity.
Exceptions
LockIsAcquiredByAnotherHostErrorwhen the lock is busy
anythingelse when the locking fails, strategy is responsible for cleanup, Release won't be invoked.

Implements dist_lock::DistLockStrategyBase.

◆ Release()

void storages::mongo::DistLockStrategy::Release ( const std::string & locker_id)
overridevirtual

Releases the lock.

Parameters
locker_idGlobally unique ID of the locking entity, must be the same as in Acquire().
Note
Exceptions are ignored.

Implements dist_lock::DistLockStrategyBase.


The documentation for this class was generated from the following file: