第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP 服務(wù)器請求超時

PHP 服務(wù)器請求超時

PHP
DIEA 2019-03-05 11:48:19
if($request->isPost()){ $file =input('post.avatar'); if(!$file){ $this->error('請上傳需要導(dǎo)入的表格!支持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')); } } } $uptime = time();//用于判斷插入記錄的唯一時間戳 $num = input('post.num');//獲取商品數(shù)量 $id = input('post.gid');//獲取商品id $uid = $this->auth->id;//獲取用戶id $uname = $this->auth->username; $yu_money = $this->auth->money;//獲取用戶余額 $level = $this->auth->level;//獲取用戶會員等級 $store_id = input('post.store_id');//獲取倉庫編號 $store_info = Db::name('send_store')->where('id',$store_id)->find();//獲取倉庫記錄 $is_multiple = $store_info['is_multiple']; if($is_multiple==0){ $num = 1; } $express_id = $store_info['express_id'];//快遞編號 $express_price = get_price($level,$express_id);//獲取快遞價格 $goods_info = Db::name('goods')->where('id',$id)->find(); $weight = $goods_info['weight']; $goods_price = $goods_info['price'];//獲取商品單價 $total_fee = $num*$goods_price+$express_price;//計算總價 $send_store = $store_info['send_code'];//獲取發(fā)貨倉編號 $store_name = $store_info['store_name'];//獲取發(fā)貨倉name $father_code = trim(get_father_code($id,$express_id));//獲取主站商品編號 $PHPExcel = $PHPReader->load($filePath); //加載文件 $currentSheet = $PHPExcel->getSheet(0); //讀取文件中的第一個工作表 $allRow = $currentSheet->getHighestRow(); //取得一共有多少行 $pttype = $currentSheet->getCell("A1")->getValue();//是什么平臺表格 $leijia = ''; $continue_num = 0; for($i=2;$i<=$allRow;$i++){ if($yu_money < $total_fee){ $upinfo=Db::name('upinfo'); $info['user_id'] = $uid; $info['exnum'] = $allRow-1;//要插入數(shù)據(jù)庫的總記錄數(shù) $info['oknum'] = $i-2;//成功插入的數(shù)量 $info['tableid'] = $uptime;//此次任務(wù)的id $info['expressid'] = $express_id; $info['vars'] = '余額不足'; $upinfo->insert($info); $this->error("余額不足,成功發(fā)布了".($i-2)."條記錄",url('Express/tblist')); } if($pttype=='訂單編號'){//淘寶 $out_order_no = $currentSheet->getCell("A".$i)->getValue();//訂單號 $address_ren = $currentSheet->getCell("O".$i)->getValue();//收件人 $address_array = preg_replace('/(,)|(,)/','',$currentSheet->getCell("P".$i)->getValue());//收貨地址 $address_hao = preg_replace('/\W/','',$currentSheet->getCell("S".$i)->getValue());//號碼 }else if($pttype=='商品'){//拼多多 $out_order_no = $currentSheet->getCell("B".$i)->getValue(); $address_ren = $currentSheet->getCell("O".$i)->getValue();//收件人 $address_hao = preg_replace('/\W/','',$currentSheet->getCell("P".$i)->getValue());//收件號碼 $add_s = $currentSheet->getCell("Q".$i)->getValue();//省 $add_c = $currentSheet->getCell("R".$i)->getValue();//市 $add_a = $currentSheet->getCell("S".$i)->getValue();//區(qū) $add_d = $currentSheet->getCell("T".$i)->getValue();//地址 $address_array = $add_s.' '.$add_c.' '.$add_a.' '.$add_d;//收件地址 }else if($pttype=='訂單號'){//模板 $out_order_no = $currentSheet->getCell("A".$i)->getValue(); $address_array = preg_replace('/(,)|(,)/','',$currentSheet->getCell("B".$i)->getValue());//收件地址 $address_ren = $currentSheet->getCell("C".$i)->getValue();//收件人 $address_hao = preg_replace('/\W/','',$currentSheet->getCell("D".$i)->getValue());//收件號碼 }else{ $this->error('提交的表格格式錯誤,請按照導(dǎo)入說明操作!'); } $out_order_no = preg_replace('# #','',$out_order_no);//訂單號 $address_hao = preg_replace('# #','',$address_hao);//收件人手機號 $address_ren = preg_replace('# #','',$address_ren);//收件人 //驗證訂單號是否為空 if(empty($out_order_no)){ $leijia = $leijia.'第'.$i.'行訂單號為空,'; continue; } $isorder = Db::name('express')->where('out_order_no',trim($out_order_no))->find(); //驗證訂單是否重復(fù)提交 if ($isorder) { $leijia = $leijia.'第'.$i.'行地址訂單號'.$isorder['out_order_no'].'重復(fù),'; continue; } //驗證收件人手機號是否為空 if(empty($address_hao)){ $leijia = $leijia.'第'.$i.'行收件人手機號為空,'; continue; } //驗證收貨地址是否為空 if(empty(preg_replace('# #','',$address_array))){ $leijia = $leijia.'第'.($i).'行收件地址為空,'; continue; } //驗證收件人是否為空 if(empty($address_ren)){ $leijia = $leijia.'第'.$i.'行收件人為空,'; continue; } //驗證收貨地址是否合理 $addrlist = explode(" ",$address_array); $addrlist = array_filter($addrlist); $addrlist = array_values($addrlist); if(count($addrlist)<4) { $leijia = $leijia.'第'.$i.'行收貨地址不合理,'; continue; } // ini_set("display_errors","On"); // error_reporting(E_ALL); switch ($express_id) { case 1: //接口請求參數(shù) $post_info = [ 'accessToken'=>config('get_yto_config.token'), 'storehouseCode'=>$send_store,'goodsCode'=>$father_code, 'receiver'=>$address_ren,'receiverPhone'=>$address_hao, 'receiverProvinceName'=>$addrlist[0],'receiverCityName'=>$addrlist[1], 'receiverAreaName'=>$addrlist[2],'receiverAddress'=>$addrlist[3], 'thirdOrderNo'=>$out_order_no,'goodsNum'=>$num,'shipperName'=>$uname ]; //請求接口 $json = sendRequest('',$post_info,'POST'); $return = json_decode($json,1); $code = $return['code']; if($code==0){ $return_data = $return['data']; $taskid = $return_data['recordId']; //處理成功時的業(yè)務(wù)邏輯 $result = []; $result[$i] = [ 'user_id'=>$uid, 'express_no'=>'0', 'out_order_no'=>$out_order_no, 'expressid'=>$express_id, 'weight'=>$weight, 'price'=>$total_fee, 'num'=>$num, 'goods'=>$id, 'addressee'=>$address_ren, 'a_mphone'=>$address_hao, 'all_address'=>$address_array, 'taskid'=>$taskid, 'sender'=>$store_name, 'tableid' => $uptime, 'from' => 1 ]; //更新用戶信息 $retu = model('express')->saveAll($result); $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; case 4: //接口請求數(shù)據(jù) $orderParams = []; $orderParams[0] = [ 'apiOrderId'=>$out_order_no,//訂單唯一標識 'buyerName' =>$address_ren,//收件人 'buyerMobile'=>$address_hao,//收件人手機號 'buyerAddr'=>$address_array,//收件地址 'storeType'=>$send_store,//發(fā)貨倉編號 'kuaidiName'=>get_express_name($express_id) ]; $orderParams = json_encode($orderParams); $post_info = [ 'partnerId' =>'',//合作商ID 'itemId' =>$father_code,//韻達禮品對應(yīng)商品編號 'orderParams' =>$orderParams,//訂單信息 'validation' =>md5($father_code.$orderParams.''.'') ]; $json = sendRequest('',$post_info,'post'); $return = json_decode($json,1); if($return['result']===1){ $return_info = $return['orders'][0]; $out_order_no = $return_info['apiOrderId'];//訂單唯一標識 $express_no = $return_info['expressNo'];//快遞面單號 //處理成功時的業(yè)務(wù)邏輯 $result = []; $result[$i] = [ 'user_id'=>$uid, 'express_no'=>$express_no, 'out_order_no'=>$out_order_no, 'expressid'=>$express_id, 'weight'=>$weight, 'price'=>$total_fee, 'num'=>$num, 'goods'=>$id, 'addressee'=>$address_ren, 'a_mphone'=>$address_hao, 'all_address'=>$address_array, 'sender'=>$store_name, 'tableid' => $uptime, 'from' => 1 ]; //更新用戶信息 $retu = model('express')->saveAll($result); $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['message']); } break; default: # code... break; } } $upinfo=Db::name('upinfo'); $info['user_id'] = $uid; $info['exnum'] = $allRow-1;//要插入數(shù)據(jù)庫的總記錄數(shù) $info['oknum'] = $continue_num;//成功插入的數(shù)量 $info['tableid'] = $uptime;//此次任務(wù)的id $info['expressid'] = $express_id; $info['vars'] = $leijia=='' ?'全部導(dǎo)入成功':$leijia; $upinfo->insert($info); $this->success("發(fā)布成功".($continue_num)."條",url('Express/exlist')); } 上面是我處理業(yè)務(wù)邏輯的代碼 對方接口一次最多只接受5條數(shù)據(jù)我讀取表格后 通過for循環(huán) 一條一條讀取表格的記錄 在循環(huán)體內(nèi)一次一次請求外部接口 今天有一個客戶上傳的表格太大 導(dǎo)致整個循環(huán)體循環(huán)時間太長 服務(wù)器超時 請問這種問題我改怎么解決 拜托各位大佬幫忙給我個建議
查看完整描述

3 回答

?
FFIVE

TA貢獻1797條經(jīng)驗 獲得超6個贊

借助消息隊列實現(xiàn)異步處理耗時任務(wù)

查看完整回答
反對 回復(fù) 2019-03-18
?
GCT1015

TA貢獻1827條經(jīng)驗 獲得超4個贊

$allRow 是最大讀取條數(shù)嘛?
可以試試把獲取的數(shù)組轉(zhuǎn)成collect()
然后調(diào)用chunk()分片處理
庫操作盡可能提出去一次處理

查看完整回答
反對 回復(fù) 2019-03-18
?
子衿沉夜

TA貢獻1828條經(jīng)驗 獲得超3個贊

用消息隊列,異步化,同時不用這個excel包,用csv文本文件

查看完整回答
反對 回復(fù) 2019-03-18
  • 3 回答
  • 0 關(guān)注
  • 851 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號