
workerman+tp5的错误问题怎么解决?thinkphp5+workerman 报错问题
在thinkphp5.0.X版本早期会遇到长时间开启workerman服务会报错,在thinkphp5.0.24版本已经修复。原因是因为长时间链接数据库,导致数据库断线。
推荐:《Workerman教程》
解决的方案:
1、修改数据库配置database.php文件,将break_reconnect参数设置为true。断线重连。
解决问题如下:只列举最近用户提交问题,其余问题前面几次补丁已经解决,不在复述。1、解决搜索问题。以前搜索一定要确定到省下面的某个市,这个不符合用户体验。 现在改为,省--所有城市(默认为所有城市,也可以自己选择某个市)。2、解决首页推荐产品部显示问题。(以前没有考虑多个其他浏览器)3、解决供应、求购 今日产品显示问题。(理由同上)4、解决收藏商家、供应、求购问题。 (链接错误)5、解决后台分类过
0
// 是否需要断线重连 '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的错误问题怎么解决的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号