"Многопоточность" выполнения 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
Виконання робіт після SEO- аудиту
15 000 UAH
Потрібен досвідчений OpenCart-розробник для виконання SEO та технічних доопрацювань інтернет-магазину. Основні завдання: Виправлення структури внутрішніх посилань та меню. Додавання посилань у футер. Реалізація хлібних крихт з мікророзміткою Schema.org. Виправлення генерації… PHP, Супровід сайтів ∙ 1 день 7 годин тому ∙ 51 ставка |
В модулі OpenCart пофіксити проблеми з Facebook APIВ OpenCart є модуль інтеграції Facebook та Instagram через API, OAuth та Webhook. Після відкриття сторінки модуля в браузері - в Фейсбук починає рости кількість АПІ запитів до Фейсбук і росте кількість помилок gr:get:InvalidID. Потрібно знайти що викликає проблеми і… PHP, Веб-програмування ∙ 1 день 9 годин тому ∙ 34 ставки |
Зробити WordPress плагін для опитування (квізу)
10 000 UAH
Потрібно розробити вордпрес плагін, який буде вміти - зберігати банк питань, всі в однаковому форматі - питання та 4 відповіді, 1 правильна - показувати 12 питань у рандомному порядку, рахувати хронометраж - збирати дані користувача - показувати фінальний результат з можливістю… PHP, Веб-програмування ∙ 1 день 16 годин тому ∙ 95 ставок |
Потрібна інтеграція KeyCRM → ПРРО Кашалот |
Сайт на WordPress з використанням теми Kadence та Kadence Blocks.
10 000 UAH
Нам потрібно створити сайт на WordPress з використанням теми Kadence та Kadence Blocks. Інтернет-магазину не буде (хоча, ймовірно, він буде доданий у майбутньому). Потрібна головна сторінка та кілька внутрішніх сторінок. Графіка вже готова, структура макета здебільшого… CMS, PHP ∙ 5 днів 13 годин тому ∙ 38 ставок |
