1. 程式人生 > >netty實現動態定時器

netty實現動態定時器

執行 span 相關 ash 客戶 推送 ont 後臺 hash

最近開發一個後臺遊戲服務器,需要定時給 客戶端推送 作物狀態:

1.需要開啟一個線程,執行定時任務

2.需要動態添加定時任務

3.需要動態修改定時任務時間。

網上找到兩種方式:quartz服務 和HashedWheelTimer 這兩種方式 ,項目中用的是HashedWheelTimer ,相關API可以自行百度或者看源碼。

創建HashedWheelTimer 對象

技術分享圖片

通過 map<String,TimerOut> 來存儲 定時器

通過設置定時任務返回timeOut 對象,存放在map中,當使用減少時間的道具時,修改定時任務時間

技術分享圖片

編寫定時器方法

技術分享圖片

在 因為用的是netty 在斷開連接的時候 一定要存儲。

netty實現動態定時器