把悲伤当酒窝 2019-02-23 14:16 采纳率: 50%
浏览 1592
已采纳

php for循环请求接口超时

$file =input('post.avatar');

if(!$file){

    $this->error('请上传需要导入的表格!支持csv,xls,xlsx格式!');

}

$filePath = ROOT_PATH . DS . 'public' . DS . $file;

if (!is_file($filePath)) {

    $this->error('上传的表格不存在,请核实');

}

$PHPReader = new \PHPExcel_Reader_Excel2007();

    if (!$PHPReader->canRead($filePath)) {

        $PHPReader = new \PHPExcel_Reader_Excel5();

    if (!$PHPReader->canRead($filePath)) {

        $PHPReader = new \PHPExcel_Reader_CSV();

        $PHPReader->setInputEncoding('GBK');

        if (!$PHPReader->canRead($filePath)) {

            $this->error(__('Unknown data format'));

        }

    }

}         

for($i=2;$i<=$allRow;$i++){

    switch ($express_id) {

        case 1:

            //接口请求参数

            $post_info = [



            ];

            //请求接口

            $json = sendRequest('',$post_info,'POST');

            $return = json_decode($json,1);

            $code = $return['code'];

            if($code==0){

                $return_data = $return['data'];

                $taskid = $return_data['recordId'];

                //处理成功时的业务逻辑

                $result = [];

                $result[$i] = [



                ];

                //更新用户信息

                $yu_money = $yu_money-$total_fee;

                \app\common\model\User::score($score=0,'-'.$total_fee,$uid,',编号'.$retu[$i]['id']);

                $continue_num = $continue_num+1;

            }else{

                $this->error($return['msg']);

            }

            break;

        default:

            # code...

            break;

    }

}

//循环结束执行业务逻辑

```用户上传表格->php后台解析表格->通过for循环在循环体内请求外部接口 表格有多少记录循环多少次->当所有for循环执行结束后 处理其他业务

现在的问题就是当表格有500以上的数据时 整个for循环体执行时间太长 导致服务器超时

请问这种情况该怎么解决 对方接口一次最多接收5调数据

上面是我代码的示例 请问这种问题该怎么解决 如果改变请求时间用户体验不好 等待时间过长
  • 写回答

2条回答 默认 最新

  • 断水流大撕兄 HarmonyOS创作领域新星创作者 2021-04-02 11:41
    关注

    建议使用异步消息队列   既可以完成你的需求 体验感也不会差

     

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已采纳回答 1月2日

悬赏问题

  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了