LockFactory
in package
FinalYes
Фабрика блокировок над выбранным хранилищем.
Создаёт Lock для именованного ресурса, автоматически выдавая каждой блокировке уникальный криптостойкий токен владельца — так только создатель блокировки сможет её снять или продлить.
Table of Contents
Methods
- __construct() : mixed
- create() : Lock
- Создать блокировку для ресурса.
- semaphore() : Semaphore
- Создать счётный семафор над этим хранилищем.
Methods
__construct()
public
__construct(LockStore $store[, Sleeper|null $sleeper = null ]) : mixed
Parameters
- $store : LockStore
-
хранилище блокировок (файлы/кэш/память)
- $sleeper : Sleeper|null = null
-
пауза для блокирующего ожидания Lock::block();
null— боевой RealSleeper
create()
Создать блокировку для ресурса.
public
create(string $resource[, int|null $ttlSeconds = null ]) : Lock
Parameters
- $resource : string
-
ключ ресурса
- $ttlSeconds : int|null = null
-
срок жизни в секундах для хранилищ с TTL;
null— до явного снятия
Return values
Lock —новая блокировка с уникальным токеном владельца
semaphore()
Создать счётный семафор над этим хранилищем.
public
semaphore(string $resource, int $slots[, int|null $ttlSeconds = null ]) : Semaphore
Parameters
- $resource : string
-
имя разделяемого ресурса
- $slots : int
-
число одновременных держателей (ёмкость семафора)
- $ttlSeconds : int|null = null
-
срок жизни слота для хранилищ с TTL;
null— до явного снятия
Return values
Semaphore —семафор на указанное число слотов поверх хранилища