亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

在Laravel匯入Excel檔案,資料量太大,伺服器經(jīng)常500怎麼辦?
我想大聲告訴你
我想大聲告訴你 2017-05-16 16:48:23
0
3
930

使用的Laravel excel拓展,在不修改伺服器配置的前提下,如何快速導(dǎo)入1萬(wàn)多條excel資料並且不報(bào)500錯(cuò)誤,謝謝

我想大聲告訴你
我想大聲告訴你

全部回覆(3)
PHPzhong

這種情況一般是記憶體佔(zhàn)用超過(guò)php最大允許的配置或執(zhí)行時(shí)間太長(zhǎng)而逾時(shí)。如果直接使用Laravel excel的擴(kuò)展,基於web上傳方式導(dǎo)入的話肯定會(huì)超時(shí)同時(shí)也肯定超過(guò)內(nèi)存大小限制了的。

解決辦法是使用Laravel的定時(shí)任務(wù)或任務(wù)佇列。

  • 定時(shí)任務(wù)

    上傳文件后,定時(shí)任務(wù)去檢查是否有新上傳的文件,如果有就執(zhí)行導(dǎo)入處理。
    
  • 任務(wù)隊(duì)列

    上傳文件后,發(fā)布一個(gè)異步事件,由任務(wù)listener去異步處理excel內(nèi)容的導(dǎo)入。
    

    最後導(dǎo)入完成後再將導(dǎo)入結(jié)果寫入資料庫(kù)或其它儲(chǔ)存方式,這樣非同步的對(duì)資料進(jìn)行導(dǎo)入就不會(huì)因?yàn)橛洃涹w或超時(shí)而報(bào)錯(cuò)了。

曾經(jīng)蠟筆沒(méi)有小新

很正常。常遇到這個(gè)。所以我開(kāi)發(fā)了一個(gè)擴(kuò)充功能。
https://git.oschina.net/xavie...
https://github.com/xavieryang...

PHP導(dǎo)入xls問(wèn)題很嚴(yán)重,xlsx由於是壓縮包加xml,比xls好。 xls是二進(jìn)位文件,必須全部加載才可以解析,而且解析比較複雜,目前比較流行的PHPEXCEL處理xls速度非常慢,導(dǎo)入xls的時(shí)候往往都死在了解析。

巴扎黑

不用一次吧1W條讀入內(nèi)存 一條一條讀,一條一條存

function getRows($file)
{
    $handle = fopen($file, 'rb');
    if (!$handle) {
        throw new Exception();
    }
    while (!feof($handle)) {
        yield fgetcsv($handle);
    }
    fclose($handle);
}


foreach (getRows('data.csv') as $k) {

}
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板