Задать вопрос
@MarkLb

Как работает метод acquire в Mutex Yii2?

Есть вопросы к логике работы Mutex Yii2;
Допустим, есть Mutex:
$mutex = new FileMutex();
$mutexName = 'order-mutex';
$unlockSeconds = 5;

if ($mutex->acquire($mutexName, $unlockSeconds)) {
	// код
	$mutex->release($mutexName);
} else {
	throw new \Exception('');
}


Вопросы:
1. Что значит второй параметр $timeout в методе acquire($name, $timeout = 0)? Это выставление таймаута, прежде чем будет обрабатываться следующий запрос?
$timeout time (in seconds) to wait for lock to be released. Defaults to zero meaning that method will return false immediately in case lock was already acquired.
Из PHPDoc

2. При каких условиях метод acquire() возвращает false, из-за чего выходит бросается исключение?
С этим связана основная проблема: при обращении к API, некоторые клиенты получают данное исключение, вместо постановки(так ли?) запроса в очередь.
  • Вопрос задан
  • 695 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Onskills
    PHP: базовый курс
    1 месяц
    Далее
  • teamcoding
    TC200PY Разработка PHP веб-приложений на Yii2. Шаблон приложения advanced
    3 месяца
    Далее
  • FructCode
    Yii2 Фреймворк
    2 месяца
    Далее
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы