求助! 一道测试的笔试题,望高人指点!
某公司一测试题(大概内容):
1.在网络游戏运营时,游戏系统活动开启时间预设为每周的周一00:00,若因为意外情况不能及时开启,则在周二的00:00开启。但是在实际运行过程中,游戏系统开启时间却在当周周一的08:00。请问由于什么原因造成的?
2.当修复之前的Bug后游戏系统活动开启正常,可是在当周的周五00:00系统活动又再次重启了,问是什么原因?
只能答出了第一道题:由于系统服务器的时区与当地的时区相差8个小时而导致的。
可是第二个问题,想了N久都不知道是怎么回事,求高人指点,在下感激不尽啦……
[解决办法]
结贴率50%。。。
虽说网络是个大家奉献的地方,但是咱也得尊重人不是。
第一题不仅是时区,还有定时器问题,只有这样才能解释第二题出现的现象
原定7*24 由3个定时逻辑组成
1、间隔7天
2、间隔1天
3、间隔6天
然后还有清除1天重置定时器的概念在里面,即周二启动成功后,应该是(7-1)*24,这里的定时器搞错了(因为中间作了一次代码调整,逻辑已经不同于初始时),做成了((7-1)-1)得到的就是5天。如果再加上日期修正,中间可能存在的问题更多。
-------------
以上为个人猜测,逻辑大概符合。
[解决办法]
原因:
1. 因为管理员周末把启动活动的服务或者游戏配置关了,周一早上8点来上班才发现,于是...
或者因为服务器周末挂了导致活动没启动,周一人来上班重启服务器,顺便把活动开开...
或者因为...
2. 修好了BUG总要测试一下看看有没有带来别的问题的嘛,人家礼拜四晚上才把问题搞定,就顺便熬夜到礼拜五0点启动一下咯..
或者因为新来的不懂规矩,礼拜五0点手工启动的活动,他觉得真好玩
或者因为管理员媳妇玩这个游戏,强烈要求管理员按其意思启动活动,以获取非法利益...
出这种题目的公司整个一傻B
[解决办法]
我也觉得是定时器的问题,时间计算错误造成的,单纯用7作为周期就会有可能出意外,时差,跨年等问题。所以可以从这个角度考虑