往数据库插入数据时出现了多条重复数据

业务场景

钉钉端发起审批流程后,会回调开发者后台的callback接口,然后callback接口逻辑处理时会对一些数据做入库处理,但是突然发现数据库中出现了很多重复的数据

问题发现

业务代码进行断点,发现并无异常,就是一条insert按理说就应该入库一次,初次问题排查失败。

然后去查日志将插入数据的日志拉出,发现打出的info日志中,出现了多条线程跑入数据的情况,如下:http-nio-10888-exec-线程,分别出现了9、5、8、7、2

请添加图片描述

然后怀疑多线程,但是查询业务代码后发现并没有多线程的写法。

最后在同事的提醒下,怀疑可能是callback接口响应时间太长,导致钉钉方以为接口调取失败了,触发了重试机制,再次对callback接口发起了请求,故而出现了这种多线程请求的情况。

然后对各处业务代码加日志,打印时间。

请添加图片描述

果不其然,发现了有一处地方调用时间长达7000+ms,把这个地方代码修复后(干掉),程序恢复正常!

警示!!!

写代码调取三方接口或者写一些逻辑复杂的处理时,一定要进行日志打印,并且将一些重要的参数打印清楚,否则将大大增加后期排查时间成本。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值