laravel5.4使用laravel-excel包导入数据,队列被killed

algery
  • 110

excel文件大小为:2.7M;

总行数:15000行

config(['excel.import.startRow' => 6 ]);
        config(['excel.import.heading' => 'numeric' ]);

        Excel::selectSheetsByIndex(0)->filter('chunk')->load($qlrFile)->chunk(1000,function($result) {
            //qlr写入数据库 50行 空7行
            $data=[];
            $resultArr = $result->toArray();
            foreach ($resultArr as $key=>$item){
                if(!empty($item[7]) && is_numeric($item[7])){
                    $data[$key]['id'] = $key+1;
                    $data[$key]['arnr']=$item[0];
                    $data[$key]['buyer']=$item[1];
                    $data[$key]['customer_id']=$item[3];
                    $data[$key]['profil']=$item[5];
                    $data[$key]['customer_name']=$item[6];
                    $data[$key]['order_nr']=$item[7];
                    $data[$key]['line_id']=$item[8];
                    $data[$key]['cust_po_nr']=$item[9];
                    $data[$key]['cust_item_nr']=$item[10];
                    $data[$key]['qty']=$item[14];
                    $data[$key]['ngsp']=implode('',explode(',',number_format($item[15],2)));
                    $data[$key]['sales_person']=$item[16];
                    $data[$key]['order_type']=$item[18];
                    $data[$key]['wh_id']=$item[20];
                    $data[$key]['subline_status']=$item[22];
                    $data[$key]['created_at']=Carbon::now();
                    $data[$key]['updated_at']=Carbon::now();
                }
            }
            $orderInfo = DB::table('orders_qlr')->insert($data);
        });

队列:php artisan queue:work --queue=high,low --timeout=590 --memory=1024

phpinfo:memory_limit:128M

当导入8,9千条数据的时候队列就会被killed;

我有另一张也是15000行数据的excel,文件大小在1.7M;能够全部导入写入库中;

上面稍大些的文件就会被killed;

回复
阅读 3.2k
1 个回答

是的,是内存不足。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏