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

重啟的時(shí)候調(diào)用Gateway的一些方法會(huì)報(bào)錯(cuò)

問題描述

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

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

程序代碼

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()]);
    }
}

報(bào)錯(cuò)信息

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
902 2 0
2個(gè)回答

PHP武漢小老弟

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

walkor 打賞

重啟過程中有些進(jìn)程會(huì)退出,這時(shí)候有業(yè)務(wù)處理需要進(jìn)程通訊就會(huì)報(bào)錯(cuò),這個(gè)報(bào)錯(cuò)是正常的。

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

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

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

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