思考:
首先,已经捐献了几次是记录在玩家身上的。
这种的话,问题主要是:何时重置次数的问题。
方法1:
再每天5点的时候,重置所有的在线玩家的捐献次数。
玩家在登陆的时候,”对比上次捐献时间和当前是否是同一天,然后如果不是,则进行进行重置“。
方法2:
在每次进行捐献和查询捐献信息的时候,则进行 :”对比上次捐献时间和当前是否是同一天,然后如果不是,则进行进行重置“ 这个判断。
---------------
方法1用到的业务其实挺多的,这样子查询只管查询就行了,没有多余的判断,一个方法只做一件事,但是问题就是:在凌晨5点这时,要做的业务比较多,还好这时玩家比较少,减少了这种压力。 而且同一时刻上线的人也不多,也没事。而且所有类似的带有刷新的模块,都可以这样子写。 在XxxManager中写一个重置方法就行了。
时间记录的话,只需要记录玩家身上一个全局的:lastResetTime即可。 而不是每个模块都记录一个时间。
这个业务调用时机则是:Am5时调用一次。 在玩家登陆时调用一次。