"Многопоточность" выполнения 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 на него никак не влияет -
Так в чому проблема? Напишіть мультипоточність і подивіться як це вплине на вирішення вашої проблеми, якщо ви вважаєте що саме в цьому справа. Я б рекомендував вав просто провести аналіз, тести, а вже потім робити висновки про те чого саме не вистачає вашому скрипту, бо навіть мені як спеціалісту, важко з ходу оцінити в чому точна проблема.
-
Current freelance projects in the category PHP
Execution of work after SEO audit
334 USD
An experienced OpenCart developer is needed to perform SEO and technical improvements for the online store. Main tasks: Correction of the internal linking structure and menu. Adding links to the footer. Implementation of breadcrumbs with Schema.org microdata. Fixing the… PHP, Website Maintenance ∙ 1 day 1 hour back ∙ 49 proposals |
Fix issues with Facebook API in the OpenCart moduleIn OpenCart, there is a module for integrating Facebook and Instagram via API, OAuth, and Webhook. After opening the module page in the browser, the number of API requests to Facebook starts to increase, and the number of errors gr:get:InvalidID also rises. It is necessary to… PHP, Web Programming ∙ 1 day 3 hours back ∙ 34 proposals |
Create a WordPress plugin for a survey (quiz)
223 USD
A WordPress plugin needs to be developed that will be able to - store a bank of questions, all in the same format - a question and 4 answers, 1 correct - display 12 questions in random order, track the timing - collect user data - show the final result with the option to share… PHP, Web Programming ∙ 1 day 10 hours back ∙ 94 proposals |
Integration needed: KeyCRM → Cash Register KashalotIt is necessary to set up integration between KeyCRM and the Cash Register Kahalot. When placing an order in KeyCRM, the data must be automatically transmitted to Kahalot: • order information • products, nomenclature • prices • quantity More details in private. Content Management Systems, PHP ∙ 3 days 22 hours back ∙ 29 proposals |
A WordPress site using the Kadence theme and Kadence Blocks.
223 USD
We need to create a website on WordPress using the Kadence theme and Kadence Blocks. There will be no online store (although it may be added in the future). We need a homepage and several internal pages. The graphics are already prepared, the layout structure is mostly defined,… Content Management Systems, PHP ∙ 5 days 7 hours back ∙ 38 proposals |
