Laravel 控制台程序 循环执行 ORM 查询 内存溢出

<?php

namespace App\Console\Commands;
use App\Models\Products\SkuStock;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;
use Maatwebsite\Excel\Facades\Excel;

class ImportStock extends Command
{
    protected $signature = 'import:stock';
    protected $description = '导入仓库初始数据';
    public function __construct()
    {
        parent::__construct();
    }
    public function handle()
    {
        DB::connection()->disableQueryLog();
        //此处本来是要实现读取excel数据 导入到数据里面去
        for ($i=0;$i<10000;$i++){
            SkuStock::all();
            echo memory_get_usage().PHP_EOL;
            sleep(1);

        }
    }
}
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
leo
最佳答案

6.x 版本需要把 flare.reporting 里所有的都配成 false,这个是一个巨坑

4年前 评论
JerryBool 3年前
讨论数量: 6
leo

Laravel 6 吗?

4年前 评论

@leo 你好 是 lavarel 6.3 版本 我早上再试试 看会不会是其他日志包引起的 或者定位下具体是不是 框架缓存了某些内容

4年前 评论
leo

6.x 版本需要把 flare.reporting 里所有的都配成 false,这个是一个巨坑

4年前 评论
JerryBool 3年前

@leo 虽然我没找到 在哪里修改这个配置 但是我就感觉你这个答案是正确的

4年前 评论
leo 4年前

谢谢兄弟们已解决 舒坦好多

4年前 评论
lddtime 4年前
woaini (作者) (楼主) 4年前

@leo @woaini 请问两位应该如何彻底关闭 IgnitionServiceProvider 里面的日志监听。我追踪下来发现就是这个日志监听,导致内存一直增大。

file

我的 flare 配置文件已经全部改为 false 了

file

3年前 评论
leo 3年前
JerryBool (作者) 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!