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

重啟的時候調(diào)用Gateway的一些方法會報錯

問題描述

每次重啟的時候(無論是restart獲取reload)都會導致出現(xiàn) unable to connect to tcp://127.0.0.1:2306 (Connection refused) ,我大概知道是什么原因引起的,但是不知道怎么解決

比如說我在close調(diào)用getClientIdByUid ,每當我重啟的時候,就會導致getClientIdByUid 調(diào)用報錯,不知道該如何處理,跪求大家?guī)蛶兔?,重啟的時候不僅僅onClose會報錯,也會有onMessage里面調(diào)用Gateway::getUidByClientId的報錯

程序代碼

public static function onClose($client_id)
{
    $user_id = $_SESSION['user_id'] ?? 0;
    $exist = Gateway::getClientIdByUid($user_id);
    if (empty($exist)) {
        Db::name('user')->where('id', $user_id)->update(['is_online' => 0, 'offline_time' => datetime()]);
    }
}

報錯信息

2023-05-15 22:03:12 pid:10107 ErrorException: stream_socket_client(): unable to connect to tcp://127.0.0.1:2306 (Connection refused) in /data/www/comechat_wss/vendor/workerman/gateway-worker/src/Lib/Gateway.php:761
978 2 0
2個回答

PHP武漢小老弟

給我?guī)淼睦_是一些業(yè)務的處理可能不準,比如說當進入了onClose,我會根據(jù)$exist = Gateway::getClientIdByUid($user_id);判斷用戶是離線還是切換網(wǎng)絡(luò),如果我的重啟的時候觸發(fā)了onClose,雖然我能try catch這個報錯,但是會影響我的邏輯判斷,有什么比較好的處理方法嗎

walkor 打賞

重啟過程中有些進程會退出,這時候有業(yè)務處理需要進程通訊就會報錯,這個報錯是正常的。

如果你是更新數(shù)據(jù)庫在線狀態(tài),按照你現(xiàn)在的方法,重啟時需要考慮將數(shù)據(jù)庫在線狀態(tài)全部歸零,否則會有數(shù)據(jù)不準確。
推薦用一個定時器定時執(zhí)行Gateway::getAllUidList(),得到的結(jié)果去更新數(shù)據(jù)庫,這樣性能更好,結(jié)果準確。

  • PHP武漢小老弟 2023-05-16

    好的老大,老大我又提了個新問題,搜索了一些問答沒有找到答案,能再幫忙解答下嗎

年代過于久遠,無法發(fā)表回答
??