PHP Symfony2 Семафор

1

Я хочу каким-то образом сохранить переменную между разными запросами.

Моя ситуация:

У меня есть класс обслуживания symfony2, который выполняет команды на удаленной машине. Я не смог бы контролировать это исполнение, чтобы оно остановилось, если предыдущее выполнение еще не закончено.

Я слышал о Семафорах, но я не уверен, что это сделает трюк, и если это будет подходящий способ сделать что-то подобное.

Принцип, который я представляю, довольно прост.

Client1 отправляет запрос на сервер, который начинает выполнять код на удаленном компьютере. До этого он проверяет, установлена ли переменная выполнения, если она не устанавливает переменную, что выполняется выполнение.

Client2 отправляет запросы с одинаковой логикой, но теперь переменная процесса выполнения установлена так, что это означает, что удаленный сервер занят, поэтому запрос останавливается и сервер отправляет ответ клиенту, который в данный момент занят.

Как я могу это достичь?

  • 1
    Любая форма постоянного хранения, наиболее распространенной из которых является база данных или файл на диске. Хранилище ключей / значений, такое как reddis, также будет хорошим вариантом
  • 0
    Может ли сервер не выполнять более одной вещи одновременно? Вот нормально, какие серверы для
Теги:
semaphore

1 ответ

0

Когда служба запускается, создайте файл на диске. После выполнения команды удалите файл. Другие запросы проверяют существование файла и выполняют только команду, когда файл отсутствует.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню