@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, некоторые клиенты получают данное исключение, вместо постановки(так ли?) запроса в очередь.
  • Вопрос задан
  • 578 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы