$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개의 데이터 조정을 받을 수 있습니다
위는 제 코드의 예입니다. 문제를 해결하려면 어떻게 해야 하나요? 요청 시간이 변경되면 사용자 경험이 좋지 않고 대기 시간도 깁니다. 너무 길어요