"Многопоточность" выполнения PHP
На данный момент, имеется панель управления, в которой узким горлышком является скрипт общения с демоном Python который на линуксе вертится, демон многопоточный и обрабатывает всё быстро и может быстрее, а вот пхп уже нет, обновление с 5.4 до 7.2 дало своё дело, но опять при получении большего количества запросов, начинается затык и иногда упирается в ошибку 504 gateway timeout
Как это работает сейчас?
Примерно так
https://github.com/frealy121212/daemonworker/blob/master/worker
Запросов в секунду: 30-50
Пик запросов в секунду(при выполнении скрипта по крону) - 300
Если например запросов хотя бы 150-200, и один из демонов падает\потери сети или другие проблемы с доступом, это гарантия того что скрипт зависнет и выкинет 504 ошибку, нужен только рестарт apache.
Не предлагать: увеличить ресурсы \ поставить таймаут \ поставить лимит на выполнение скрипта \ короче все "костыли" которые лишь создают видимость решения проблемы.
Что требуется: сделать эмуляцию многопоточности, возможно curl_multi_init, а возможно другими методами.
Рассмотрю все варианты с адекватными решениями проблемы.
Бюджет есть, больше "3-х" рублей.
-
nginx пробовали?
-
не совсем понятно, как все устроено, но в вашем скрипте на гитхабе
socket_set_nonblock($Socket);
вызывается до открытия сокета. причем, socket_set_nonblock() -- это функция для слушающего сокета.
каждый запрос к php (через крон, или через веб-сервер, или через консоль) выполняется в своем потоке.
504 ошибку nginx обычно выдает при превышении времени выполнения php-скрипта, на это влияет только его собственная настройка, и знчение php.ini на него никак не влияет -
Так в чому проблема? Напишіть мультипоточність і подивіться як це вплине на вирішення вашої проблеми, якщо ви вважаєте що саме в цьому справа. Я б рекомендував вав просто провести аналіз, тести, а вже потім робити висновки про те чого саме не вистачає вашому скрипту, бо навіть мені як спеціалісту, важко з ходу оцінити в чому точна проблема.
-
Актуальные фриланс-проекты в категории PHP
Многостраничный HTML-шаблон веб-сайта для онлайн-ставок и парсинг API матчей (
1109 UAH
|
Решить проблему нагрузки на хостинг сайта на ПресташопСайт с каждым месяцем требует все больше и больше ресурсов. Ответ хостера: Во время проверки сервера было зафиксировано повышенное нагрузка со стороны сервера баз данных MySQL. В моменты возникновения ошибки 500 процесс MySQL использует значительную часть ресурсов процессора,… PHP, Базы данных и SQL ∙ 6 часов 46 секунд назад ∙ 18 ставок |
Нужна интеграция KeyCRM → ПРРО Кашалот |
Сайт на WordPress с использованием темы Kadence и Kadence Blocks.
10 000 UAH
Нам нужно создать сайт на WordPress с использованием темы Kadence и Kadence Blocks. Интернет-магазина не будет (хотя, вероятно, он будет добавлен в будущем). Нужна главная страница и несколько внутренних страниц. Графика уже готова, структура макета в основном определена,… CMS, PHP ∙ 1 день 16 часов назад ∙ 37 ставок |
Разработка 2 SEO-ориентированных сайтов по продаже запчастей (квадроциклы и спецтехника)Разработка двух специализированных сайтов по продаже запчастейОбщая информация Необходимо разработать два специализированных сайта: Запчасти для квадроциклов, UTV, SSV и другой подобной техники. Запчасти для специальной техники. Существующий сайт компании:… PHP, Веб-программирование ∙ 2 дня 14 часов назад ∙ 76 ставок |
