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

GatewayWorker 中Timer問題

xxj

我建立了4個(gè)worker進(jìn)程,在設(shè)備連接后,會開啟一個(gè)20秒的任務(wù)。因?yàn)樵O(shè)備信號的問題,有時(shí)設(shè)備會斷開后又重連,這時(shí)候會與服務(wù)器建立新的連接。在新的連接中,我會判斷設(shè)備是否時(shí)這種斷了又連的情況,如果是這種情況我會用Gateway::closeClient($old_client_id);
關(guān)閉老連接,在onclose 事件中 去刪除 在老連接開啟的20秒任務(wù)?,F(xiàn)在又兩問題:
1:有時(shí)20秒任務(wù) 突然不運(yùn)行了。這個(gè)時(shí)根據(jù)設(shè)備端發(fā)送的心跳信息判斷的,正常在20秒任務(wù)中,我會與設(shè)備通訊一次。因此設(shè)備是不會發(fā)送心跳信號的,如果60秒設(shè)備與服務(wù)器之前沒有通訊就會發(fā)送心跳。因此服務(wù)端接收到心跳時(shí),我只有重新開始一個(gè)20秒任務(wù),來解決這個(gè)Timer失效的問題;
2:在onclose 刪除定時(shí)器時(shí),有時(shí)候覺得好像沒有刪除掉,因?yàn)閷τ诘倪壿嬤€在運(yùn)行,還在向數(shù)據(jù)庫寫數(shù)據(jù)。是否時(shí)因?yàn)殚_啟了多個(gè)進(jìn)程的原因,執(zhí)行刪除定時(shí)器所在進(jìn)程和創(chuàng)建定時(shí)器所在進(jìn)程不一致,因此通過Timer.del(?),這個(gè)?對于的定時(shí)器不存在呢?
3:我如何知道到底當(dāng)前不同的worker進(jìn)程中有哪些定時(shí)器任務(wù)在執(zhí)行呢?
請指點(diǎn)下,謝謝!

2646 2 0
2個(gè)回答

six

利用心跳可以關(guān)閉老的無用連接。
設(shè)置

$gateway->pingInterval = 55;
$gateway->pingNotResponseLimit = 1;

這樣55秒內(nèi)沒有發(fā)心跳的設(shè)備的連接會自動close,不用手動調(diào)用closeClient()

  • xxj 2021-03-09

    這個(gè)知道了,謝謝。主要還Timer定時(shí)任務(wù)為什么不執(zhí)行了。

  • six 2021-03-09

    有可能你認(rèn)為沒在執(zhí)行,實(shí)際上在執(zhí)行,定時(shí)函數(shù)里第一行打日志看下

不敗少龍

還是要用workerman的定時(shí)器方法去執(zhí)行

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