好的,我有一个运行在 Java/Hibernate/Spring/Quartz 中的游戏服务器。游戏时钟与 Quartz 计时器一起滴答作响,效果很好。
然而,我还有许多其他事情需要在特定的、可调整的时间间隔内发生(在游戏时间,而不是实时)。
例如,每 24 小时游戏时间(约 47 分钟实时,取决于服务器时钟倍数)就会发生一堆不同的一天一次的游戏动作,比如补给,或者你有什么。
现在,当前系统非常粗糙,但是可以工作 - 我在数据库中有一个表,它本质上是一个 cron - 一个字符串键,下一个事件的执行时间,然后是小时、分钟、秒和天,直到下一个事件. 时间记录器会检查这一点,然后将包含该代码(事件字符串键)的消息发送到队列中,将天、分钟、秒添加到当前时间并将其设置为下一个执行时间。
消息监听器是最重要的部分——它打开按键并点击它的一种方法。
现在我明白这可以很好地工作,但它真的不适合我。你的解决方案是什么,让每段代码都放在自己的小类中?什么设计模式涵盖了这个?(我确定有一个)。我有一些想法,但我想听听一些意见。