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