@muhasa

Как отправить сотню запросов одновременно?

Народ, вопрос такой - есть проект моего товарища, который дергает с удаленного европейского сайта результаты онлайн-игр. Делает он это простейшим способом - cron'ом раз в минуту опрашивает файлики, которые бьют запросы. Причем, ситуация такова, что в файле 1.php, например, есть главный запрос ко всем играм, а потом в цикле по каждой игре дополнительные запросы к урлу, который отдает дополнительные поля. Выходит, что в 1 файле может быть 20-30 запросов. Если взять за расчет 1 сек - 1 запрос, то получается порядка 20-30 секунд на один файл парсинга.

Теперь встала задача все это ускорить, так как еще одна игра у него может в 1 файле создавать до 100 запросов, а тут уже в минуту не получится запускаться - 1 файл будет исполняться по 2 минуты, примерно.

Первое, что приходит в голову - асинхронные или параллельные запросы (это одно и то же ведь?)
Парсинг у него написан на php, я почитал в интернете - php для параллельных запросов, говорят, не очень хорош. В связи с тем несколько вопросов:

1) Действительно ли не php решить эту задачу - дохлый номер? Или просто заморочено? Знаю, что есть библиотеки, вроде GuzzleHTTP, у того же curl есть curl_multi_exec и вообще библиотек, заявляющих об асинхронности прилично, но то ли это, что мы ищем?
2) Знаю, что для подобных задач хорош node.js, так ли это? И еще то же слышал о python, написать daemon'а на нем и в ус не дуть. Какая их технологий справляется с этой задачей лучше? Мне бы предпочтительнее python, я его немного читал в свое время.

Благодарю за поддержку!
  • Вопрос задан
  • 164 просмотра
Пригласить эксперта
Ответы на вопрос 1
adugin
@adugin
Python asyncio & aiohttp, также проверьте, не передаёт ли сайт данные по websocket (можно в браузере увидеть).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы