Задать вопрос
@ANorton
Программист

Длительные операции PHP — ложиться весь сайт, почему?

Подскажите пожалуйста, как вообще грамотно это делается.
Может сам PHP не так настроен.

Есть сайт написанный на PHP, и места, где через CURL идет запрос к сторонним веб-сервисам, от веб-сервисов приходит ответ, обрабатывается и показывается пользователю.

И вот когда пользователей сайта много, а сторонние веб-сервисы нагружены(отдают ответ не быстро), то начинает тормозить(и выдавать ошибку 502) вообще весь сайт, даже страницы, где нет запросов к веб-сервисам.

Почему? И что делать?

Как я понимаю, все процессы забиваюся ожиданиеми от веб-сервисов, поэтому новые пользователи стоют в очередь и ждут пока CURL запросы отдадут результат.

А как быть тогда? Как оставить основной поток, что бы работало, а вот эти CURL запросы в отдельные потоки что ли?
  • Вопрос задан
  • 236 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 3
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
для начала откорректировать количество воркеров в php-fpm, а дальше по ситуации.

Ну и не делать curl в потоке основном естественно, ставить очереди.
Ответ написан
hOtRush
@hOtRush
очереди и менять архитектуру
Ответ написан
akubintsev
@akubintsev
Опытный backend разработчик
Прежде всего отказаться от файловых сессий.
Дальше мониторить доступность новых воркеров. Если затык в них, то использовать менеджер очередей и демонов асинхронных запросов. reactphp/http-client в помощь
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы