Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-Http池与Curl-Multi_Php_Curl_Httprequest_Curl Multi - Fatal编程技术网

PHP-Http池与Curl-Multi

PHP-Http池与Curl-Multi,php,curl,httprequest,curl-multi,Php,Curl,Httprequest,Curl Multi,我想使用PHP从服务器a向服务器B发出并行请求。在Curl多句柄和Http池中,哪一种是最好的方法 这两种方法的优缺点是什么 请给我推荐一种在性能、内存消耗和CPU使用方面都最佳的优化方法。PHP确实会消耗内存,这与标准CURL命令不同。而且curl不能处理并行请求。multi命令以块的形式发出请求,这些请求将一直挂起,直到全部完成。据我所知,您不能在PHP中进行并行请求。最好的解决方案是从命令行使用xargs和curl: cat urls.txt | xargs -L 1 -P 10 time

我想使用PHP从服务器a向服务器B发出并行请求。在Curl多句柄和Http池中,哪一种是最好的方法

这两种方法的优缺点是什么


请给我推荐一种在性能、内存消耗和CPU使用方面都最佳的优化方法。

PHP确实会消耗内存,这与标准CURL命令不同。而且curl不能处理并行请求。multi命令以块的形式发出请求,这些请求将一直挂起,直到全部完成。据我所知,您不能在PHP中进行并行请求。最好的解决方案是从命令行使用xargs和curl:

cat urls.txt | xargs -L 1 -P 10 timeout 45 curl 
这将从文件下载URL(或curl命令)-L表示线数,-P表示所需的并行连接数

在PHP中通过exec或system运行此操作是最有效的。或者,您需要使用卷曲包装器,如:

但如前所述,这是不平行的