Postgres distributed locking strategy.
More...
#include <userver/storages/postgres/dist_lock_strategy.hpp>
|
| DistLockStrategy (ClusterPtr cluster, const std::string &table, const std::string &lock_name, const dist_lock::DistLockSettings &settings) |
|
void | Acquire (std::chrono::milliseconds lock_ttl, const std::string &locker_id) override |
|
void | Release (const std::string &locker_id) override |
|
void | UpdateCommandControl (CommandControl cc) |
|
Postgres distributed locking strategy.
Definition at line 17 of file dist_lock_strategy.hpp.
◆ Acquire()
void storages::postgres::DistLockStrategy::Acquire |
( |
std::chrono::milliseconds |
lock_ttl, |
|
|
const std::string & |
locker_id |
|
) |
| |
|
overridevirtual |
Acquires the distributed lock.
- Parameters
-
lock_ttl | The duration for which the lock must be held. |
locker_id | Globally unique ID of the locking entity. |
- Exceptions
-
LockIsAcquiredByAnotherHostError | when the lock is busy |
anything | else when the locking fails, strategy is responsible for cleanup, Release won't be invoked. |
Implements dist_lock::DistLockStrategyBase.
◆ Release()
void storages::postgres::DistLockStrategy::Release |
( |
const std::string & |
locker_id | ) |
|
|
overridevirtual |
The documentation for this class was generated from the following file: