一个让我心态爆炸的bug

本文分享了一个关于使用Netty框架进行定时任务时遇到的问题。作者在遍历channel时检查了channelMap的状态,并据此更新了数据库中的设备状态,但在本地和服务端同时运行时导致了数据异常。教训包括测试数据库与实际数据库分离及考虑定时任务在集群环境下的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题由来:

外包使用的netty框架,我每隔5分钟遍历一次channel,然后把isActive()==false的channel都移除,把数据库里的设备状态也改为不在线。
然后!!!我写了个很傻比的设定,每次遍历之前,先检查一下channelMap是否为null或者isEmpty(),如果是!就把数据库中所有的设备都记为离线状态!!

产生的问题:

我是直接服务器和本地测试采用了同一台服务器(也因为是外包,要加快开发速度),然后我在服务器上运行的时候,本地的服务也一直开着,然后就炸了。数据库里的信息总是莫名其妙的被改,在服务端怎么查bug也查不出来,就这么浪费了一晚上,然后突然想起来本地的定制服务没关QAQ

教训:

1.测试数据库和实际数据库要分离。
2.定时服务一定要考虑集群的相互影响。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值