今天发现一个生产bug记录一下
首先说一下背景,我们有一个每天凌晨执行的定时任务,去更新客户数据;
然后今天突然收到反馈说某个客户的数据没有更新,
第一反应是看这个客户的数据有没有问题,因为以前出现过因居民数据问题导致没有更新成功的问题,然后快速登录堡垒机查看客户数据
尴尬了,,,发现没有问题,全部符合条件,
没办法只能根据日志,比对代码,查看可能出现问题地方,
然后还是没有发现问题。。。。
思考一下,接口没有报错,有日志说明已经调到了,而且还有的客户数据已经更新了,为什么有的客户没有更新呢。。。百思不得其解。。
只能用我的终极办法了,把这个客户的生产数据拷贝到测试库,本地debug,
最后发现测试库这个客户数据更新了。。。
艹
终极办法不管用了。。。
正在冥思苦想呢,
突然灵光一闪,是不是抛出异常了,如果真的是抛出异常了,而且又被try catch 捕获了
然后去看代码,果然在外面整个service被一个try catch了,
try {
// 业务逻辑service
} catch (Exception e) {
logger.error(e.toString());
}
关键日志就输出了一个logger.error(e.toString())
无语了,不知道是哪位前辈写的。。。。 真坑。。
这个只输出了一行异常日志,不仔细看还真看不出来。。。
解决方式:
把这个try catch放到service内部,增加详细日志,找到具体是哪个客户的数据问题。