您好,登錄后才能下訂單哦!
小編給大家分享一下如何解決workerman+tp5的錯誤問題,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
workerman+tp5的錯誤問題怎么解決?thinkphp5+workerman 報錯問題
在thinkphp5.0.X版本早期會遇到長時間開啟workerman服務會報錯,在thinkphp5.0.24版本已經修復。原因是因為長時間鏈接數據庫,導致數據庫斷線。
解決的方案:
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的錯誤問題”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。