问题标签 [curl-multi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 使用 curl_multi_exec 运行 curl 的并行处理程序
为什么在这段代码中我需要调用 2 次 curl_multi_exec 函数。
在第一个循环中,我正在执行 curl_multi_exec 处理程序以运行子处理程序。当 CURLM_CALL_MULTI_PERFORM 与 $mrc 不同时,循环结束。
在第二个循环中,我们从 curl 处理程序中找到结果,然后再次执行第一个循环,为什么?
代码摘自PHP-Doc站点
php - 向同一服务器发出 CURL 多个请求与单个请求一样慢
我正在使用一个很好的 Multi CURL 界面,称为 Rolling CURL
http://code.google.com/p/rolling-curl/issues/detail?id=20
它工作正常,例如它在大约 3 秒内从 20 个站点获取数据。问题是我需要它在同一服务器上的 200 - 300 个站点上工作。这与在循环中发出单个 CURL 请求所需的时间大致相同,大约为 10 分 47 秒。所以我有点不知道该怎么做。我需要做的就是获取每个站点上的 HTTP 代码。我试过 file_get_contents,PHP FTP 函数,它们要慢得多。
另一件事是,当我浏览同一服务器上的 12 个以上域的列表时,它似乎阻止了请求,所以我根本没有在任何站点上获取任何数据。当我运行少于 12 个的列表时,不会出现此问题。我只获取站点的标题数据,因此它不应该那么慢。
如果有人可以帮助我或详细解释为什么会发生这种情况,并提供有关如何克服这个问题的指示,我将非常感激。
php - 如何检查 PHP 是否支持 multi_curl?
我有一段使用 cURL 进行发布请求的 PHP 代码,它使用 curl_multi_* 函数来提高性能。
在我托管的 PHP 服务器上一切正常。
但它在 127.0.0.1 的 WAMPServer 上失败了。单个 cURL 请求在 WAMPServer 上工作得很好,但curl_multi_select()
在脚本最终超时之前只会返回 -1。
代码...是 PHP.net 的 curl_multi_exec 手册页上的示例 #1:http ://www.php.net/manual/en/function.curl-multi-exec.php 这是导致无限循环的片段:
测试时禁用了 Vista 的防火墙。
有谁知道如何让 curl_multi_* 在 WAMPServer 上工作,或者有什么方法可以从 PHP 脚本中检测对 curl_multi_* 的支持,以便我可以回退?
php - 为什么使用 multi_curl 同时调用多个 php 脚本时脚本执行会有延迟?
我有一个脚本可以同时调用大约 40 个单独的 php 脚本(位于同一台服务器上)。我注意到每个单独的 php 脚本的启动有长达 5 秒的延迟。服务器负载 CPU 和内存看起来不错,没有交换,请参阅 top 命令向下:
绑定所有 multi_curl 请求的循环中的最后一个脚本通常具有最大的延迟。我在每个脚本一开始就测量了延迟。
我能做些什么来防止这种延迟?
下面是我的 httpd.conf
php - 将多请求扩展到不同的服务
我有一项服务,我需要根据每个用户请求询问 40 个外部服务 (API) 以从它们那里获取信息。例如,一个用户正在搜索一些信息,而我的服务要求 40 个外部合作伙伴获取信息,将其聚合到一个数据库(mysql)中并将结果显示给用户。
目前我有一个 multicurl 解决方案,我一次有 10 个合作伙伴请求,如果有人完成了请求,那么软件将从剩余的 30 个合作伙伴添加到 multicurl 队列中,直到所有 40 个请求完成,结果在数据库中。
这个解决方案的问题是它不能在许多服务器上扩展,我想要一些解决方案,我可以一次触发 40 个请求,例如在 2-3 个服务器上划分,并且只等待很长时间,作为最慢的合作伙伴提供结果 ;-) 这意味着,如果最慢的合作伙伴需要 10 秒,我将在 10 秒内获得所有 40 个合作伙伴的结果。在 multicurl 上,当一次有超过 10-12 个请求时,我遇到了麻烦。
什么样的解决方案,你能给我提供什么,我得到尽可能少的资源,并且可以在一台服务器上运行许多进程并且是可扩展的。我的软件是用 PHP 编写的,这意味着我需要使用框架或 API 很好地连接到解决方案。
我希望你能理解我的问题和需要。请询问,如果有不清楚的地方。
php - curl_multi 的 CURLINFO_EFFECTIVE_URL
我正在使用 PHP 的 CURL MULTI 并行下载一组资源,并且我想从每个资源(不仅仅是最后一个)中获取最后一个有效的 URL。
基本上,我正在寻找:
对于 CURL MULTI,类似于:
有任何想法吗?
php - 同时执行多个 php 脚本的最有效方法是什么?
目前我正在使用 multi_curl 在我自己的服务器上同时执行 php 文件。这似乎不是一种非常有效的方法,因为当需要同时执行 200 多个脚本时服务器会过载。我需要通过将所有必需的变量放在发布请求中来将变量发送到我当前执行的每个 php 脚本。
我知道另一个选项是 gearman,但我必须安装它,而且我不喜欢安装太多应用程序,尽管我不知道它是否是一个繁重的程序。我也不知道它是否对服务器更有效。
是否还有一个选项可以在 php 中使用 linux shell 命令?
我有一个标准配置的 linux 服务器,带有 php 和 mysql。
所以我的问题是:
同时执行许多 php 脚本的最有效方法是什么,它还允许我向每个脚本发送一组变量?
php - 如何从终端运行多线程 curl 脚本?
我为 PHP 使用了一个多 curl 库,它有助于并行获取多个页面(基本上是一个易于使用的 API)。
My Scenario
: 从 API 获取用户数据,处理并存储结果。所有必须提取数据的用户都放在队列中。整个提取、处理和存储结果将花费近 8 - 10 分钟。如果我同步处理它,它真的很昂贵。所以我使用 php curl 库进行多线程处理。如果我在浏览器中运行它,它工作正常,但由于它的 cron 作业,所以我必须使用命令行运行相同的脚本。当我这样做时;不起作用。有谁能够帮我?提前致谢。
伪代码:
php - 从本地主机 php 错误的 AWS S3 批量上传
我正在尝试从本地主机(xampp)批量/批量上传到我的S3
存储桶。
它似乎适用于大约 6 个项目,然后我收到一条错误消息:
cURL 错误Failed sending network data.
来自http://curl.haxx.se/libcurl/c/libcurl-errors.html
和
继承人我的PHP。它从目录中获取图像列表,并从该循环中获取我希望将这些项目批量上传到S3
.
更新:对我
进行更改后,congig.inc.php
我现在收到错误消息:
Fatal error: Uncaught exception 'cURL_Multi_Exception' with message 'cURL resource: Resource id #149; cURL error: Failed connect to mybucket.s3.amazonaws.com:443; No error (cURL error code 7). See http://curl.haxx.se/libcurl/c/libcurl-errors.html for an explanation of error codes.' in D:\xampp\htdocs\sdk-1.5.14\lib\requestcore\requestcore.class.php on line 902
cURL_Multi_Exception: cURL resource: Resource id #149; cURL error: Failed connect to prayerbucket.s3.amazonaws.com:443; No error (cURL error code 7). See http://curl.haxx.se/libcurl/c/libcurl-errors.html for an explanation of error codes. in D:\xampp\htdocs\sdk-1.5.14\lib\requestcore\requestcore.class.php on line 902
php - PHP curl_multi_info_read curl_getinfo。警告:提供的参数不是有效的 cURL 句柄资源
我的部分代码:
此代码导致警告Warning: curl_getinfo(): supplied argument is not a valid cURL handle resource
,我不明白为什么。当我这样做var_dump($done['handle']);
时,它会返回resource(7) of type (curl)
。请帮我找出错误。