Ограничитель одновременности
класс ConcurrencyLimiter (Просмотреть исходный код)
Свойства
| защищённое Connection | $redis | Реализация фабрики Redis. | |
| защищённая строка | $name | Имя ограничителя. | |
| защищённое целое число | $maxLocks | Разрешённое количество одновременных задач. | |
| защищённое целое число | $releaseAfter | Количество секунд, в течение которого слот должен поддерживаться. |
Методы
| void | __construct(Connection $redis, string $name, int $maxLocks, int $releaseAfter) Создать новый экземпляр ограничителя одновременности. | |
| смешанное | block(int $timeout, callable|null $callback = null, int $sleep = 250) Попытка получить блокировку на заданное количество секунд. | |
| смешанное | acquire(string $id) Попытка получить блокировку. | |
| строка | lockScript() Получить скрипт Lua для получения блокировки. | |
| void | release(string $key, string $id) Освободить блокировку. | |
| строка | releaseScript() Получить скрипт Lua для атомарного освобождения блокировки. |
Подробности
void __construct(Connection $redis, string $name, int $maxLocks, int $releaseAfter)
Создать новый экземпляр ограничителя одновременности.
смешанное block(int $timeout, callable|null $callback = null, int $sleep = 250)
Попытка получить блокировку на заданное количество секунд.
protected смешанное acquire(string $id)
Попытка получить блокировку.
protected строка lockScript()
Получить скрипт Lua для получения блокировки.
KEYS - Ключи, представляющие доступные слоты ARGV[1] - Имя ограничителя ARGV[2] - Количество секунд, на которое должен быть зарезервирован слот ARGV[3] - Уникальный идентификатор этой блокировки
protected void release(string $key, string $id)
Освободить блокировку.
protected строка releaseScript()
Получить скрипт Lua для атомарного освобождения блокировки.
KEYS[1] - Имя блокировки ARGV[1] - Уникальный идентификатор этой блокировки
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/10.x/Illuminate/Redis/Limiters/ConcurrencyLimiter.html