在PHP中并行发送多个xml请求?可能?
问题描述:
我有一个脚本,可以调用远程服务器上的XML API。目前我的脚本串行发送10个请求到远程服务器。它在发送下一个请求之前完全处理每个请求。目前,这对我的服务器来说是一个巨大的瓶颈,因为每个API请求每个请求可能需要一秒钟。由于大多数时间都是等待远程服务器响应,所以我想知道是否/如何并行发送请求,以便所有10个请求都使用相同的一秒延迟而不是十秒钟的等待时间...在PHP中并行发送多个xml请求?可能?
我想过使用系统命令调用脚本10次并在后台运行它们以有效地创建10个进程,但我不确定这是否是最好的方法。我想这个问题可能以前已经解决了。
答
如果您可以使用系统命令,那么它是可能的。
- 创建PHP脚本是什么做的请求,并(共10个文件)写入响应数据文件
- 写一个PHP脚本调用系统命令来运行高于10 PHP脚本,然后等待所有执行完成
- 从文件中读取响应数据
答
PHP不支持线程,但是你用curl_multi。
这将并行发送您的请求。这是一个很好的解决方案,因为大部分时间您都在网络上等待。
如果你仔细设计(使用URL的队列,问题,当每一个被做了处理回调),您将不必等到最长的请求完成