问题由来:
外包使用的netty框架,我每隔5分钟遍历一次channel,然后把isActive()==false的channel都移除,把数据库里的设备状态也改为不在线。
然后!!!我写了个很傻比的设定,每次遍历之前,先检查一下channelMap是否为null或者isEmpty(),如果是!就把数据库中所有的设备都记为离线状态!!
产生的问题:
我是直接服务器和本地测试采用了同一台服务器(也因为是外包,要加快开发速度),然后我在服务器上运行的时候,本地的服务也一直开着,然后就炸了。数据库里的信息总是莫名其妙的被改,在服务端怎么查bug也查不出来,就这么浪费了一晚上,然后突然想起来本地的定制服务没关QAQ
教训:
1.测试数据库和实际数据库要分离。
2.定时服务一定要考虑集群的相互影响。