最近開發一個后台游戲服務器,需要定時給 客戶端推送 作物狀態:
1.需要開啟一個線程,執行定時任務
2.需要動態添加定時任務
3.需要動態修改定時任務時間。
網上找到兩種方式:quartz服務 和HashedWheelTimer 這兩種方式 ,項目中用的是HashedWheelTimer ,相關API可以自行百度或者看源碼。
創建HashedWheelTimer 對象
通過 map<String,TimerOut> 來存儲 定時器
通過設置定時任務返回timeOut 對象,存放在map中,當使用減少時間的道具時,修改定時任務時間
編寫定時器方法
在 因為用的是netty 在斷開連接的時候 一定要存儲。