服務(wù)器更新代碼reload進(jìn)程后,導(dǎo)致該進(jìn)程下的所有定時(shí)器丟失,如何避免reload進(jìn)程定時(shí)器丟失? 棋牌游戲,定時(shí)器用來機(jī)器人出牌和托管等等業(yè)務(wù)。
定時(shí)器丟失導(dǎo)致的問題:定時(shí)器丟失客戶端收不到消息,直接導(dǎo)致游戲卡死。
reload原理是進(jìn)程退出重啟,所以定時(shí)器肯定會(huì)丟失,你可以在設(shè)置定時(shí)器的時(shí)候把定時(shí)器相關(guān)信息保存到磁盤,進(jìn)程重啟后在onWorkerStart時(shí)讀取磁盤重建定時(shí)器
恩,這樣是可以,就是有點(diǎn)麻煩,還有一種方案在更新代碼的時(shí)候停服,更新完后再重啟,弊端是體驗(yàn)不好。