问题标签 [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.

0 投票
1 回答
162 浏览

php - PHP中cURL的mult函数有什么瓶颈?

使用 cURL_multi 非常适合同时连接,但什么可以限制连接数?我问是因为当做超过 500 个时,其中一些似乎随机无法连接。我正在执行超时为 5 的 HEAD 请求,将超时增加到 10 似乎没有帮助。有任何想法吗?

0 投票
2 回答
4755 浏览

php - 为什么 curl_multi_select 和 curl_multi_info_read 相互矛盾?

当我运行下面的代码时,在我看来curl_multi_select并且curl_multi_info_read彼此矛盾。据我了解,它curl_multi_select应该是阻塞的,直到curl_multi_exec有响应,但我还没有看到实际发生。

这返回

这似乎自相矛盾。它怎么能准备好并且没有任何消息?

我使用的 php 版本是 5.3.9

0 投票
0 回答
775 浏览

php - 没有 curl_multi_select() 的 PHP curl_multi_exec() 示例?

有没有人有使用curl_multi_exec () 没有curl_multi_select () 的例子?我们的一台服务器仍然使用 Centos5 和 PHP5.1.x。

此外,该示例应允许在每个人完成之前处理句柄。

我的实现在没有 Content-Length 参数和请求正文超过缓冲区大小 (16k) 的站点上存在问题。如果没有来自服务器的 Content-Length,则curl_getinfo ()['download_content_length'] 始终为 -1。

0 投票
1 回答
3455 浏览

php - curl_multi_select 总是阻塞超时值

在 Windows XP PHP 5.3.5 上从 PHP运行示例 #1 时,curl_multi_select()该行将始终在指定的超时时间内阻塞(如果为空白,它将阻塞 1 秒,如果我指定 5 秒超时,它将阻塞 5 秒)不管获取内容所需的时间。我怀疑它与这个错误有关。

问题是:最好的解决方法是什么?我能想到的最好的办法就是摆脱curl_multi_select()usleep(x)节省一些周期。

0 投票
1 回答
4324 浏览

php - PHP:并行 cURL 性能 - RollingCurl 与 ParallelCurl

我有大量的 cURL 请求要处理。我发现有几个库可以帮助并行处理它们,主要的是 RollingCurl ( http://code.google.com/p/rolling-curl/ ) 和 Parallel Curl ( https://github.com/皮特沃登/平行卷曲)。

有没有人有使用这些库的经验,如果有,你知道哪个表现更好吗?

谢谢!

更新:对于以后可能偶然发现的任何人,如果您使用 Rolling Curl 的组功能,它在处理大量请求时似乎会中断(50k+)

0 投票
1 回答
1748 浏览

php - 为什么在使用许多等待响应的 CURL 请求时我的 CPU 很高?

我有一个大型 php 脚本,它使用 curl 和 multi-curl 对我自己的服务器和其他服务器的请求。除此之外,它在我自己的服务器上执行许多数据库请求和其他操作。

脚本太大,无法放在这里,不会让事情变得更容易。

我测量了整个剧本的时间。我区分了自己服务器上的操作和外部服务器上的操作所需的时间。

看来,将我自己服务器上所有操作的经过时间加起来不会超过 0.5 秒。因此,我希望我自己的脚本对我的服务器来说不会很重。总经过时间平均为 25 秒。

大多数时间:24.5 秒我的服务器正在等待来自外部服务器的响应。我的服务器确实发出了大约 300 个 curl 请求,但是 curl 请求本身并不重。

问题: 当我运行脚本时,cpu 达到 95%,只要这个脚本正在运行,服务器(几乎)就不会响应其他请求。

这是一个多卷曲请求的示例:

httpd.conf:

我的问题: 如何更好地配置我的服务器以防止过载?

0 投票
2 回答
2051 浏览

php - 如何不从 curl-multi 返回数据并减少 CPU 使用率?

我在 php 中有一个使用多卷曲的脚本。

一般的多卷曲请求由 50 个单独的卷曲句柄组成。每个请求返回都需要一些时间,所以我的脚本应该等到远程服务器上的处理完成。

这 50 个请求中的每一个都返回大量我不需要的数据(内容)。因此,忽略返回的数据会更有效。但是我确实需要知道远程服务器上的处理何时完成,即返回数据的时间。

我不需要使用数据但确实需要发出请求的原因是远程服务器将数据放入数据库中,随后我从自己的服务器中获取。所以我基本上只需要发出这个请求并且我需要知道远程服务器上的脚本何时完成。

我的问题: 这个请求消耗了大量的 CPU,我怎样才能让它更有效率?

编码:

0 投票
1 回答
328 浏览

php - PHP - 在某个点停止所有 curl_multi 请求

我有一个使用 curl_multi 同时发出多个请求的 php 脚本。

它访问我的几个站点以搜索定义的值。

现在我遇到的问题是,如果 curl 请求在其中一个站点上找到我正在搜索的值,它应该停止。

假设我为单词 stackoverflow 解析了 1000 页。该脚本一次使用 curl_multi 和 10 个请求访问这些页面。假设脚本在第 589 页找到了单词 stackoverflow,它现在应该停止所有进一步的请求。

这有可能吗?

0 投票
0 回答
305 浏览

php - 启动 cron-multi 时断开链接检查

此代码通过启动多个 cron 来检查页面的损坏链接。然而,它并没有识别出正确的链接被破坏了。尽管页面上有可用的断开链接,但它始终返回 0 个断开的链接。$url_list 是页面链接的数组。

谢谢。

0 投票
1 回答
982 浏览

php - curl_multi_exec 返回空数组

我一直在使用以下函数来制作异步 curl 帖子:

我刚刚注意到它通常只返回第一个 URL 的结果,或者根本没有结果。我玩过这个功能的大约 100 种配置。结果是空数组,并且 curl_error($curl_arr[$i]) 是空的,所以我不确定从哪里开始寻找问题所在。我知道 URLS 是正确的,因为如果我背靠背进行常规卷发,它就可以正常工作。