Я хочу каким-то образом сохранить переменную между разными запросами.
Моя ситуация:
У меня есть класс обслуживания symfony2, который выполняет команды на удаленной машине. Я не смог бы контролировать это исполнение, чтобы оно остановилось, если предыдущее выполнение еще не закончено.
Я слышал о Семафорах, но я не уверен, что это сделает трюк, и если это будет подходящий способ сделать что-то подобное.
Принцип, который я представляю, довольно прост.
Client1 отправляет запрос на сервер, который начинает выполнять код на удаленном компьютере. До этого он проверяет, установлена ли переменная выполнения, если она не устанавливает переменную, что выполняется выполнение.
Client2 отправляет запросы с одинаковой логикой, но теперь переменная процесса выполнения установлена так, что это означает, что удаленный сервер занят, поэтому запрос останавливается и сервер отправляет ответ клиенту, который в данный момент занят.
Как я могу это достичь?
Когда служба запускается, создайте файл на диске. После выполнения команды удалите файл. Другие запросы проверяют существование файла и выполняют только команду, когда файл отсутствует.