Допустим, есть 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)? Это выставление таймаута, прежде чем будет обрабатываться следующий запрос?
2. При каких условиях метод acquire() возвращает false, из-за чего выходит бросается исключение?$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
С этим связана основная проблема: при обращении к API, некоторые клиенты получают данное исключение, вместо постановки(так ли?) запроса в очередь.