Как написать асинхронный PHP-код
У меня есть некоторый код, который делает что-то вроде этого псевдокода:
Use CURL to get site1 into a variable
Use CURL to get site2 into a variable
Use CURL to get site3 into a variable
Use CURL to get site4 into a variable
Do lots of processing on each
Produce output
echo output
В настоящее время это иногда занимает много времени.
Я бы хотел, чтобы бит CURL работал параллельно, чтобы я мог ускорить процесс.
Как мне это сделать?
3 answers
Я думаю, что вы ищете это http://php.net/manual/en/function.curl-multi-init.php параллельные запросы cURL.
Насколько я знаю, php не поддерживает асинхронный ввод-вывод.
Но я могу порекомендовать Node.js , что действительно поддерживает его, и в этом его преимущество. Дополнительное преимущество Node.js заключается в том, что вы можете использовать свои проверки формы на стороне клиента и на стороне сервера.
Просто для будущих людей я на самом деле планирую перенести часть логики на клиент, а затем использовать AJAX для запроса PHP-файлов с одним ЗАВИТКОМ в каждом файле. Таким образом, я могу запросить все файлы сразу, а затем использовать JS для анализа и приведения в порядок результатов.