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

Как правильно сделать многопоточность?

Добрый день.

Подскажите пожалуйста как правильно использовать ныне многопоточность на чистом PHP?
Что лучше использовать?

Набрасываю скрипт для работы с API.
Он будет по сути небольшой, но так как много запросов получается то он линейно будет долго работать.
Будет 2 функции:
1. Получаю список идентификаторов пользователей по API
Потом для каждого из полученных пользователей будет проходить вторая функция
2. Получает по другому API инфу пользователей. По каждому.

Соответственно если линейно то он будет их друг за другом пользователей опрашивать.
Можно ли как-то в несколько потоков сделать чтобы ускорить выполнение скрипта? Чтобы паралельно штук по 10-20 опрашивалось

Спасибо заранее за информацию
  • Вопрос задан
  • 247 просмотров
Подписаться 2 Простой Комментировать
Ответ пользователя galliard К ответам на вопрос (3)
@galliard
Для этой задачи вообще многопоточность не нужна, достаточно асинхронно делать сетевые запросы.

В этом тебе может помочь мультикурл
php.net/manual/ru/function.curl-multi-init.php

Так же другие http-клиенты имеют асинхроные решения, например guzzle
docs.guzzlephp.org/en/stable/faq.html#can-guzzle-s...

Да даже простым fopen/fread это сделать можно.

Суть там везде одна - отправляешь 100500 запросов и далее в цикле проверяешь, пришел ли ответ или нет (и полностью ли пришел или частично). Если пришел - обрабатываешь, если не пришел или пришел не полностью - уходишь на следующую итерацию.
Ответ написан
Комментировать