1.如果是onConnect時啟動一個定時器定時查詢數(shù)據(jù)(因為客戶端沒有主動上報),連接關(guān)閉時刪除這個定時器。但是當(dāng)進程reload時應(yīng)當(dāng)怎么處理,定時器應(yīng)該是當(dāng)前進程管理的吧
2.如果在onWorkerStart時啟動一個定時器處理這個進程的所有連接,reload時怎么獲取這個進程處理的所有連接(client_id)
onWorkerStart時啟動一個全局定時器處理所有連接好一些。GatewayWorker提供了豐富的接口,可以按照組獲取所有連接信息,也可以獲取全部連接信息
我的意思是能否獲取到當(dāng)前進程的所有連接信息,不是說按照組來區(qū)分,每個進程有一個計時器來處理當(dāng)前進程的連接查詢,關(guān)鍵是怎么能在reload的時候獲取當(dāng)前進程的所有連接
現(xiàn)在的做法是在onConnect時保存client_id,然后當(dāng)前進程的計時器處理保存的這些連接,但是reload時會重啟進程,只能保存到外部嗎?比如redis,數(shù)據(jù)庫之類的地方?
reload后businessWorker進程退出重啟了,就沒有當(dāng)前進程所屬連接的說法了。連接都在gateway,gateway需要處理業(yè)務(wù)時才會選擇一個businessWorker將消息轉(zhuǎn)發(fā)過來。