关于swoole的连接池,你们是用系统内置的,还是第三方包封装的?

不知道二者使用起来有啥区别啊,差别不是很大的话,我还是准备直接用内置的连接池了,不过文档里这几个说明不知道啥意思?

1. MySQL 断线重连可自动恢复大部分连接上下文 (fetch 模式,已设置的 attribute,已编译的 Statement 等等),但诸如事务等上下文无法恢复,若处于事务中的连接断开,将会抛出异常,请自行评估重连的可靠性;
2. 将处于事务中的连接归还给连接池是未定义行为,开发者需要自己保证归还的连接是可重用的;
3. 若有连接对象出现异常不可重用,开发者需要调用 $pool->put(null); 归还一个空连接以保证连接池的数量平衡。

其实主要是想问,如何在代码里把以上问题规避,以保证连接池一直可以稳定运行

讨论数量: 7
2年前 评论
poker_face (楼主) 2年前
zhuzixian520

如果想少踩坑,或者节约开发的视角,可以用一些基于swoole的框架,比如hyperf,swoft,easyswoole等

2年前 评论
poker_face (楼主) 2年前
zhuzixian520 (作者) 2年前

文档描述的很清楚了吧, 事务没有执行完成前不要归还在事务中的连接, 事务中的连接断开会抛异常,不会重新连接, 自己主动捕获一下 , 抛异常后回滚事务,调用$pool->put(null); 归还一个空连接就行 .

2年前 评论
poker_face (楼主) 2年前

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