PHP [process_control_timeout] замораживает приложение - PullRequest
2 голосов
/ 18 февраля 2020

В последнее время, когда трафик c к нашему сайту увеличивается, проблемы с простоями при развертывании увеличились. В настоящее время мы используем deployer, который перезагружает fpm после развертывания, чтобы изменить каталоги и избежать странных ошибок. Мы не хотим экспериментировать и менять способ его работы, но со временем при запуске fpm-reload наш веб-сайт приводит к 502 ошибкам шлюза, а также прерывает задачи, которые должны сообщать и изменять конфиденциальные данные. Как вы могли догадаться, это приводит к повреждению записей и т. Д.

Имея это в виду и просматривая различные источники, мы решили попробовать process_control_timeout, проблема, которая произошла, связана с нашей архитектурой. У нас есть два приложения, работающие на одном и том же fpm. Эти два приложения обмениваются данными между ними.

  • Step1 - [Клиент] -> [Api1]
  • Step2 - [Api1] -> [Api2]
  • Step3 - [Api2] -> [Api1]
  • Step4 - [Api1] -> [Клиент]

Поэтому, поэтому, если мы начнем перезагрузку fpm, в то время, когда кто-то включен [ Шаг 2] все входящие запросы будут «удерживаться» и помещаться в очередь (так работает PHP -fpm). Вы были в подобной ситуации, и есть ли способ go по этому поводу?

...