Задать вопрос
@incontumaciam

PHP как распараллелить запросы?

Есть сервер Apache + PHP + MySQL
На нем скрипт store.php который принимает данные GET и пишет в базу с периодичностью 5-10раз в секунду. Так же на этом VirtualHost есть "долгие" скрипты которые могут отрабатывать больше минуты (file_get_contents() - чтение данных из rest/api с чужого сервиса).
Получается "долгие" скрипты блокируют основной thread и данные который должны заноситься в базу станут в очередь.
Но для мониторинга мне необходимо чтоб данные заносились в базу как только отправляются (с небольшой задержкой).
Как сделать чтобы "долгие" запросы, которые только ждут ответ не занимали процесс? Если я перенесу их на новый VirtualHost у них будет свой php процесс? Что можно сделать в рамках одного VirtualHost?
  • Вопрос задан
  • 815 просмотров
Подписаться 2 Оценить Комментировать
Ответ пользователя Alex Safonov К ответам на вопрос (3)
elevenelven
@elevenelven
Php Dev @ Amadeus
Можете глянуть в сторону Gearman.
Если коротко, то вы создаёте в скрипте запрос на выполнение определенной работы и передаёте его работнику (который уже и будет её делать минуту), а сам скрипт потратит на это секунду. Следующую работу он отдаст другому свободному рабочему.
Очень удобно. Хотя требует некоторого вклада в инфраструктуру.
Ответ написан
Комментировать