最近开发一个后台游戏服务器,需要定时给 客户端推送 作物状态:
1.需要开启一个线程,执行定时任务
2.需要动态添加定时任务
3.需要动态修改定时任务时间。
网上找到两种方式:quartz服务 和HashedWheelTimer 这两种方式 ,项目中用的是HashedWheelTimer ,相关API可以自行百度或者看源码。
创建HashedWheelTimer 对象
通过 map<String,TimerOut> 来存储 定时器
通过设置定时任务返回timeOut 对象,存放在map中,当使用减少时间的道具时,修改定时任务时间
编写定时器方法
在 因为用的是netty 在断开连接的时候 一定要存储。