webman中 illuminate/database模型问题

ChuckWe

一个基础问题

按照我的理解应当是进程启动后复用同一个mysql连接,包括Db心跳都是针对这个连接的
但是在使用模型情况的时候出现了问题
一旦使用模型方法似乎是新增了一个mysql连接
这个连接会在wait_time后(120s)断开因为定时器的心跳不在这个连接
然后继续访问就会出现gone away类似的状态
然后重连一次访问成功

截图
两分钟的时候会自动close
第二次访问会激活重连
然后内存那里相应会增加大概2m的内存如果全程Db的话
不会出现这个情况
所以,如果想用模型有没有避免这个情况的发生

感觉问的问题是不是特别基础,有点不好意思问。。。。

3799 1 0
1个回答

walkor

我这测试并没有出现你说的连接增加的情况。不知道你是不是用了什么特殊的用法。
下面是测试代码。

<?php
namespace app\controller;

use support\Request;

class Index
{
    public function index(Request $request)
    {
        return json(\app\model\User::all());
    }
}
<?php
namespace app\model;

use support\Model;

class User extends Model
{
    protected $table = 'user';

    protected $primaryKey = 'uid';

    public $timestamps = false;
}
  • ChuckWe 2020-07-10

    emmm.我坑了,部分测试代码没有删除
    某个模型类有个测试的定义...打扰了 打扰了
    protected $connection = 'mysql';

年代过于久远,无法发表回答
🔝