今天在做支付需求的时候,突然被告知预定一个接口耗时太长。
接口延迟?这个问题并不陌生。可能引起延迟的原因有:
1、本身的sql查询慢
2、接口的代码时间复杂度高
3、接口调用外部的接口慢
于是先让运维同学拉了一下今天的慢查询日志,扫了一遍,并没与此相关的。再去看接口代码,发现了循环里面套了多个sql查询。嗯,应该是这个引起的,还需要再确认下。
刚要打时间日志确认,突然又接到客户反馈优惠券的一个问题,等到测试去了解这个问题后又发现了优惠券的另外一个问题。
稍微查了一下数据库,发现是由于优惠券过期引起的问题,但具体是哪里判断漏了还不清楚。
而我正在做的支付需求,发现要改动的东西还不少,需要重写http service和接口回调方法。
到此为止,原本安排的只有1件事,现在至少有3件了:
1、支付需求,需要重写service和回调方法
2、解决预定接口延迟高的问题
3、优惠券相关问题两个
稍微有些焦虑了,短时间内事情来了一堆,有点超出了我的预计。
什么是焦虑?
焦虑就是来自于意料之外的事情啊。
不过,我细想一下,这些事情的本质是什么?
1、不管其中还有多少逻辑,本质是一个http请求 和 一个插入语句
2、把循环中的sql查询,改成批量查询,最多再来一点缓存
3、基本就是几个查询的事儿
写到此处,问题已经分析清楚了,明天该干啥也有了明确的目标。
网友评论