我正在使用cURL(GET)查询API,并且API每次调用只给出25个结果(这是一个硬限制,我无能为力,因为它不是我的。)
结果如下:
<response v="2">
<query>my nifty query</query>
<location>new york, ny</location>
<totalresults>920</totalresults>
<start>1</start>
<end>25</end>
<pageNumber>0</pageNumber>
<results>
<result></result>
<result></result>
...
</results>
</response>
总结果(显示在返回的xml [上面]中)最多可包含1,000个结果,在大多数情况下,我通常每个查询有1,000个结果,所以我基本上必须调用API 40次(< em>即每次通话25次结果×40次通话= 1,000次结果)。每次通话,我都会更改API start 参数并将其增加25(即0,25,50,...,975)。
整个过程大约需要8秒钟,因为我目前以同步方式调用API(我正在使用curl_exec()
执行GET命令,在for循环中逐个执行)。是否有任何有效且更快速的方式以并行方式调用API并更快地获得这些结果?感谢。
答案 0 :(得分:5)
您可以使用curl_multi_exec()
执行多个a-synchronous cURL调用。这将允许您同时执行多个调用。
请注意,在多次查询同一服务器时,并发请求数与效率比存在上限。我确信我记得在经过大量研究或研究之后,Facebook得出结论,这个限制是3到4个并发请求,但我找不到参考,所以我可能已经想到了它。这取决于你使用的服务器和客户端,所以我真的会说你只需要吮吸它并查看。