溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

如何解決workerman+tp5的錯(cuò)誤問(wèn)題

發(fā)布時(shí)間:2021-01-07 10:53:35 來(lái)源:億速云 閱讀:580 作者:小新 欄目:編程語(yǔ)言

小編給大家分享一下如何解決workerman+tp5的錯(cuò)誤問(wèn)題,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

workerman+tp5的錯(cuò)誤問(wèn)題怎么解決?thinkphp5+workerman 報(bào)錯(cuò)問(wèn)題

在thinkphp5.0.X版本早期會(huì)遇到長(zhǎng)時(shí)間開(kāi)啟workerman服務(wù)會(huì)報(bào)錯(cuò),在thinkphp5.0.24版本已經(jīng)修復(fù)。原因是因?yàn)殚L(zhǎng)時(shí)間鏈接數(shù)據(jù)庫(kù),導(dǎo)致數(shù)據(jù)庫(kù)斷線(xiàn)。

解決的方案:

1、修改數(shù)據(jù)庫(kù)配置database.php文件,將break_reconnect參數(shù)設(shè)置為true。斷線(xiàn)重連。

// 是否需要斷線(xiàn)重連
'break_reconnect' => true,

2、修改 /library/think/db/Connection.php中的isBreak函數(shù),替換為以下最新的isBreak函數(shù)。

  /**
     * 是否斷線(xiàn)
     * @access protected
     * @param \PDOException|\Exception  $e 異常對(duì)象
     * @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函數(shù)刪除或者注釋掉。

修改完后,workerman長(zhǎng)時(shí)間鏈接數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)斷開(kāi)會(huì)重連。

看完了這篇文章,相信你對(duì)“如何解決workerman+tp5的錯(cuò)誤問(wèn)題”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI