webman think-orm plugin 连接池问题咨询

YiNv

问题描述

使用 webman think-orm plugin model 需要继承 support\think\Model 才能使用连接池吗?

172 2 0
2个回答

按照手册要继承 support\think\Model

  • YiNv 4天前

    继承了之后,使用 model 的操作数据库,连接池是自动的还是需要手动。
    现在我是继承的 thinkphp orm 的 model,数据库会不断的累加 Sleep 连接,也不释放

  • walkor 4天前

    自动的,连接池就是要维持连接不立刻释放。通过配置可以控制连接空闲多久就释放,保留多少连接不释放(最小连接数控制)

  • YiNv 4天前

    “现在我是继承的 thinkphp orm 的 model,数据库会不断的累加 Sleep 连接,也不释放” 这是 thinkphp orm 本身的问题吗?

  • YiNv 4天前

    使用连接池是否需要 PHP 安装 swoole?

  • walkor 4天前

    现在版本继承 thinkphp orm 的 model 也兼容会开启连接池,但是不保证以后一直兼容,要用连接池按照手册写。

    连接池会自动控制连接数,连接不会立刻关闭,最大连接数可控,例如连接池开启最大5个连接,一共10个进程,那么webman最大使用50个数据库连接。数据库有累加Sleep 连接正常,最大不会超过一定值,而且空闲时会自动减少连接。

  • walkor 4天前

    目前数据库连接池需要swoole

  • YiNv 4天前

    swoole 通过宝塔面板 php 扩展安装可以吗?还是需要手动编译安装,修改特定的参数

  • YiNv 4天前

    Swoole 版本有要求吗?4/5/6?

  • walkor 4天前

    swoole5 6都可以,尽量用新版

YiNv

截图
thinkphp orm pool max_connections 是 3
现在有 58 个 Sleep 连接了。Sleep 连接时间一直在更新,但不超过设定的 idle_timeout,但连接没被回收

  • nitron 4天前

    看后面的count,连接上限为3 (需要用到数据库连接的进程数之和), 你上面可能用到的 有webman 8 task 1 comsumer 8 , 那就是 3 (8 + 1 + 8) = 51

  • YiNv 4天前

    现在 60 了

  • nitron 4天前

    我不知道你到底哪些进程用到了数据库,我只是给你个计算方法,你自行计算可能的上限值

  • nitron 4天前

    按照你上面的截图, 很可能就是 3 x (8 + 1 + 8 + 8) = 75

🔝