"Многопоточность" выполнения 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 на него никак не влияет -
Так в чому проблема? Напишіть мультипоточність і подивіться як це вплине на вирішення вашої проблеми, якщо ви вважаєте що саме в цьому справа. Я б рекомендував вав просто провести аналіз, тести, а вже потім робити висновки про те чого саме не вистачає вашому скрипту, бо навіть мені як спеціалісту, важко з ходу оцінити в чому точна проблема.
-
Aktualne zlecenia dla freelancerów w kategorii PHP
Moduły dla strony na Laravel
330 PLN
Moduł dostawy i płatności dla strony https://novabook.top/ (Botble CMS / Laravel) Dodać w checkout wygodne metody dostawy i płatności (w tym ratalne), w podobnym stylu i wygodzie jak na stronie mirson ua.Dostawa (obowiązkowo) Nowa Poczta Oddział Paczkomat Kurier na adres… Javascript & Typescript, PHP ∙ 1 godzina 21 minut temu ∙ 11 ofert |
Potrzebna integracja KeyCRM → PRRO KaszalotTrzeba skonfigurować integrację między KeyCRM a PRRO Kaszalot. Podczas składania zamówienia w KeyCRM dane mają być automatycznie przesyłane do Kaszalota: • informacje o zamówieniu • towary, asortyment • ceny • ilość Szczegóły w wiadomości prywatnej. Content Management Systems, PHP ∙ 2 dni temu ∙ 27 ofert |
Opracowanie 2 stron internetowych zorientowanych na SEO do sprzedaży części (quady i sprzęt specjalistyczny)Opracowanie dwóch specjalistycznych stron internetowych do sprzedaży części zamiennychOgólne informacjeNależy opracować dwie specjalistyczne strony:Części zamienne do quadów, UTV, SSV i innego podobnego sprzętu.Części zamienne do sprzętu specjalistycznego.Istniejąca strona… PHP, Programowanie stron internetowych ∙ 4 dni 7 godzin temu ∙ 77 ofert |
Tworzenie strony internetowej WordPress
83 PLN
Poszukujemy wykonawcy do stworzenia niestandardowej strony na WordPress dla sklepu jubilerskiego. Pierwszym etapem będzie konsultacja. Content Management Systems, PHP ∙ 6 dni 23 godziny temu ∙ 75 ofert |
Parser expireddomains.net
413 PLN
Potrzebny parser expireddomains.net. Na stronie trzeba najpierw się zalogować, problem polega na tym, że blokuje IP przy próbie parsowania danych. Należy parsować tematyczne domeny według listy słów kluczowych. Kto nie jest pewny swoich umiejętności, nie pisać. PHP, Programowanie stron internetowych ∙ 9 dni 7 godzin temu ∙ 53 oferty |
