CloudCastle Lock API

Locks
in package

FinalYes

Фасад-фабрика блокировок: короткие конструкторы {@see LockFactory} над встроенными хранилищами.

$factory = Locks::flock('/var/lock');     // межпроцессные файловые блокировки
$factory = Locks::cache($psr16Cache);      // распределённые через кэш с TTL
$factory = Locks::inMemory();              // в пределах процесса / для тестов

$factory->create('order:42', ttlSeconds: 30)->synchronized(fn () => process());

Table of Contents

Methods

cache()  : LockFactory
Распределённые блокировки поверх PSR-16 кэша с автоистечением по TTL.
flock()  : LockFactory
Межпроцессные файловые блокировки на основе `flock`.
forStore()  : LockFactory
Фабрика над произвольным хранилищем блокировок.
inMemory()  : LockFactory
Блокировки в памяти процесса (атомарны в пределах процесса; для тестов и координации внутри одного запроса).

Methods

cache()

Распределённые блокировки поверх PSR-16 кэша с автоистечением по TTL.

public static cache(CacheInterface $cache) : LockFactory
Parameters
$cache : CacheInterface

PSR-16 кэш-бэкенд

Return values
LockFactory

фабрика над CacheLockStore

flock()

Межпроцессные файловые блокировки на основе `flock`.

public static flock(string $directory) : LockFactory
Parameters
$directory : string

каталог для lock-файлов

Return values
LockFactory

фабрика над FlockStore

forStore()

Фабрика над произвольным хранилищем блокировок.

public static forStore(LockStore $store) : LockFactory
Parameters
$store : LockStore

хранилище блокировок

Return values
LockFactory

фабрика над переданным хранилищем

inMemory()

Блокировки в памяти процесса (атомарны в пределах процесса; для тестов и координации внутри одного запроса).

public static inMemory([ClockInterface|null $clock = null ]) : LockFactory
Parameters
$clock : ClockInterface|null = null

часы для TTL; null — системные

Return values
LockFactory

фабрика над InMemoryStore

On this page

Search results