最近开发一个后台游戏服务器,需要定时给 客户端推送 作物状态:

1.需要开启一个线程,执行定时任务

2.需要动态添加定时任务

3.需要动态修改定时任务时间。

网上找到两种方式:quartz服务 和HashedWheelTimer 这两种方式 ,项目中用的是HashedWheelTimer ,相关API可以自行百度或者看源码。

创建HashedWheelTimer  对象

 

通过 map<String,TimerOut> 来存储 定时器

通过设置定时任务返回timeOut  对象,存放在map中,当使用减少时间的道具时,修改定时任务时间

 

 编写定时器方法

在 因为用的是netty 在断开连接的时候 一定要存储。

 

转载于:https://www.cnblogs.com/mfser/p/9888946.html