国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

關(guān)于my sql has goen away 與 client_id is invalide 這兩個今天出現(xiàn)的錯誤

weoweo520

用workerman 有一段時間了 由于業(yè)務(wù)量不大 ,所以也沒有發(fā)現(xiàn)什么問題 。
最近幾天 業(yè)務(wù)量較大 。我在后臺 debug 下發(fā)現(xiàn)了兩個重要錯誤。

一個是 在sql 查詢的時候 突然報出 my sql has gone away .

另一個是 客戶端 上去 直接說 client_id is invalide ,這個 client_id 是由wm系統(tǒng) 分配的 怎么還無效了?

以上兩個問題 分別有截屏 請求解答 感謝。

3923 3 0
3個回答

walkor 打賞

mysql has gone away 是由于mysql鏈接被mysql服務(wù)端斷開導(dǎo)致的,GatewayWorker的DbConnection是有判斷這種情況,發(fā)現(xiàn)mysql has gone away會嘗試重連一次,如果重連還是失敗,則會拋出你截圖中的異常。
所以你截圖中的mysql has gone away錯誤很可能是mysql服務(wù)端的問題,比如mysql服務(wù)端有kill腳本定時殺死耗時mysql線程等,導(dǎo)致鏈接斷開(這里只是比如,具體問題還得你自己定位)。

第二個錯誤closeClient你傳了個空的client_id過去,所以會報錯。
Context.php源碼中異常部分代碼如下

    if (strlen($client_id) !== 20) {
        throw new Exception("client_id $client_id is invalid");
    }

你的異常消息是 client_id is invalid,可以看出$client_id傳了個空,調(diào)用棧都有,可以自行打日志看下。

  • weoweo520 2016-08-08

    我看到 長連接的mysql 服務(wù)端 在長時間 收不到請求的情況 會主動斷來連接。 那么我在使用的時候是按手冊里提供的方法 $sql_r=Db::instance('ms')->select('money,tableNum')->from('msr_info')->where("msrId='$search_mid'")->row(); 來獵取數(shù)據(jù)的 這個語句不知道 底層有沒有實現(xiàn)關(guān)閉? 如果沒有 我需要調(diào)什么語句關(guān)閉?手冊里沒有找到。

weoweo520

“第二個錯誤closeClient你傳了個空的client_id過去,所以會報錯。”

問題是 這個 client_id 不是我代碼中傳的啊 ,這個client_id是gateAWay 框架中實現(xiàn) 的部分。

為什么會傳空過去呢? 這個修改我的代碼能解決問題嗎?

  • weoweo520 2016-07-24

    已懂了 這個地方 還真是我傳進(jìn)去的了。 謝謝

latin

你的調(diào)用棧里面打印的出來了,是你在msgController::cutClient里面調(diào)用Gateway::closeClient,Gateway::closeClient傳錯了參數(shù)。

  • 暫無評論
年代過于久遠(yuǎn),無法發(fā)表回答
??