Я использую Symfony 4.2 и Symfony / Lock 4.2
Мне нужен маршрут, который проверяет, используется ли блокировка, и обрабатывает некоторый код, если это не так.
Вот пример, который я использую:
/**
* @Route("/dropbox/process", name="dropbox.process")
*/
public function dropboxProcessAction() {
$store = new SemaphoreStore();
$factory = new Factory($store);
$lock = $factory->createLock("TESTLOCK", 3600);
$response = new Response();
if ($lock->acquire(false)) {
$response->setContent('Acquired');
$response->setStatusCode(200);
sleep(5);
$lock->release();
} else {
$response->setContent('NotAquired');
$response->setStatusCode(400);
}
return $response;
}
Если я открою два
http://localhost:8000/dropbox/process
в то же время второй ожидает завершения первого, прежде чем выполнить.
Когда я передал false в качестве набора для моей функции , разве не должен был ответить false сразу?