Spec-Zone.ru › Laravel 11

ConcurrencyLimiter

class ConcurrencyLimiter (View source)

Свойства

protected Connection $redis

Реализация фабрики Redis.

protected string $name

Имя лимитера.

protected int $maxLocks

Допустимое количество одновременных задач.

protected int $releaseAfter

Количество секунд, в течение которого слот должен сохраняться.

Методы

void __construct(Connection $redis, string $name, int $maxLocks, int $releaseAfter)

Создать новый экземпляр лимитера одновременности.

mixed block(int $timeout, callable|null $callback = null, int $sleep = 250)

Попытка получить блокировку на заданное количество секунд.

mixed acquire(string $id)

Попытка получить блокировку.

string lockScript()

Получить Lua-скрипт для получения блокировки.

void release(string $key, string $id)

Освободить блокировку.

string releaseScript()

Получить Lua-скрипт для атомарного освобождения блокировки.

Подробности

void __construct(Connection $redis, string $name, int $maxLocks, int $releaseAfter)

Создать новый экземпляр лимитера одновременности.

Параметры

Connection $redis
string $name
int $maxLocks
int $releaseAfter

Возвращаемое значение

void

mixed block(int $timeout, callable|null $callback = null, int $sleep = 250)

Попытка получить блокировку на заданное количество секунд.

Параметры

int $timeout
callable|null $callback
int $sleep

Возвращаемое значение

mixed

Исключения

LimiterTimeoutException
Throwable

protected mixed acquire(string $id)

Попытка получить блокировку.

Параметры

string $id

Уникальный идентификатор этой блокировки

Возвращаемое значение

mixed

protected string lockScript()

Получить Lua-скрипт для получения блокировки.

KEYS - Ключи, представляющие доступные слоты ARGV[1] - Имя лимитера ARGV[2] - Количество секунд, на которое слот должен быть зарезервирован ARGV[3] - Уникальный идентификатор этой блокировки

Возвращаемое значение

string

protected void release(string $key, string $id)

Освободить блокировку.

Параметры

string $key
string $id

Возвращаемое значение

void

protected string releaseScript()

Получить Lua-скрипт для атомарного освобождения блокировки.

KEYS[1] - Имя блокировки ARGV[1] - Уникальный идентификатор этой блокировки

Возвращаемое значение

string

© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/11.x/Illuminate/Redis/Limiters/ConcurrencyLimiter.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API