详细描述:
前端上传Excel表格->PHP读取表格获取表格最大行号->for循环解析表格中的数据->在for循环体内组装参数请求外部api接口->所有请求成功后执行后续代码
现在的问题是昨天有个用户上传的表格有1000多条数据 现在for循环体就会请求1000多次接口 导致执行时间过长 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;
}
}
//循环结束执行业务逻辑
暂无回复。