
workerman+tp5的错误问题怎么解决?thinkphp5+workerman 报错问题
在thinkphp5.0.X版本早期会遇到长时间开启workerman服务会报错,在thinkphp5.0.24版本已经修复。原因是因为长时间链接数据库,导致数据库断线。
推荐:《Workerman教程》
解决的方案:
1、修改数据库配置database.php文件,将break_reconnect参数设置为true。断线重连。
// 是否需要断线重连'break_reconnect' => true,
2、修改 /library/think/db/Connection.php中的isBreak函数,替换为以下最新的isBreak函数。
/** * 是否断线 * @access protected * @param PDOException|Exception $e 异常对象 * @return bool */ protected function isBreak($e) { if (!$this->config['break_reconnect']) { return false; } $info = [ 'server has gone away', 'no connection to the server', 'Lost connection', 'is dead or not enabled', 'Error while sending', 'decryption failed or bad record mac', 'server closed the connection unexpectedly', 'SSL connection has been closed unexpectedly', 'Error writing data to the connection', 'Resource deadlock avoided', 'failed with errno', ]; $error = $e->getMessage(); foreach ($info as $msg) { if (false !== stripos($error, $msg)) { return true; } } return false; }
3、将/library/think/db/connector/Mysql.php中的isBreak函数删除或者注释掉。
修改完后,workerman长时间链接数据库,数据库断开会重连。
以上就是workerman+tp5的错误问题怎么解决的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/97460.html
微信扫一扫
支付宝扫一扫