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