关于网友提出的“ PHP从串行请求到并行请求的优化处理”问题疑问,本网通过在网上对“ PHP从串行请求到并行请求的优化处理”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: PHP从串行请求到并行请求的优化处理
描述:现在项目中将所有附件上传到了七牛云,前台页面展示的时候需要获取图片附件的下载链接,最开始写的是放在for循环里面循环获取,但如果图片多了的话,发现串行执行的等待时间太长了,求大神指点下怎么优化下
foreach($data['root'] as &$v){
$v['at_time']=date('Y-m-d H:i:s',$v['at_time']);
$aturl = $v['at_url'];
if($v['at_name']!=='征信文档'){
$url = A('Qiniu')->get_qiuniu_down($aturl);
$v['at_url'] = $url['aturl'];
$v['m_url'] = $url['m_url'];
}
}
解决方案1:重构吧,改成php端生成密钥,使用js批量获取抵制,七牛有SDK的。
解决方案2:可以使用多进程框架来做,例如swoole的多进程,workerman(https://github.com/walkor/Wor...。
解决方案3:使用curl_multi+yield,具体可以参考github ybc429710096/scheduler
解决方案4:yield 使用协程
解决方案5:如果是public的就直接拼接url
解决方案6:怎么会还要去七牛获取地址。。不是传的时候就有地址了。
解决方案7:你的附件是私有资源吗,如果是的话,那完全可以生成签名,https://developer.qiniu.com/k...
如果不是,应该有批量获取的api
解决方案8:curl multi
以上介绍了“ PHP从串行请求到并行请求的优化处理”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/4535108.html