今天在做支付需求的時(shí)候,突然被告知預(yù)定一個(gè)接口耗時(shí)太長(zhǎng)。
接口延遲?這個(gè)問(wèn)題并不陌生??赡芤鹧舆t的原因有:
1、本身的sql查詢慢
2、接口的代碼時(shí)間復(fù)雜度高
3、接口調(diào)用外部的接口慢
于是先讓運(yùn)維同學(xué)拉了一下今天的慢查詢?nèi)罩?,掃了一遍,并沒(méi)與此相關(guān)的。再去看接口代碼,發(fā)現(xiàn)了循環(huán)里面套了多個(gè)sql查詢。嗯,應(yīng)該是這個(gè)引起的,還需要再確認(rèn)下。
剛要打時(shí)間日志確認(rèn),突然又接到客戶反饋優(yōu)惠券的一個(gè)問(wèn)題,等到測(cè)試去了解這個(gè)問(wèn)題后又發(fā)現(xiàn)了優(yōu)惠券的另外一個(gè)問(wèn)題。
稍微查了一下數(shù)據(jù)庫(kù),發(fā)現(xiàn)是由于優(yōu)惠券過(guò)期引起的問(wèn)題,但具體是哪里判斷漏了還不清楚。
而我正在做的支付需求,發(fā)現(xiàn)要改動(dòng)的東西還不少,需要重寫(xiě)http service和接口回調(diào)方法。
到此為止,原本安排的只有1件事,現(xiàn)在至少有3件了:
1、支付需求,需要重寫(xiě)service和回調(diào)方法
2、解決預(yù)定接口延遲高的問(wèn)題
3、優(yōu)惠券相關(guān)問(wèn)題兩個(gè)
稍微有些焦慮了,短時(shí)間內(nèi)事情來(lái)了一堆,有點(diǎn)超出了我的預(yù)計(jì)。
什么是焦慮?
焦慮就是來(lái)自于意料之外的事情啊。
不過(guò),我細(xì)想一下,這些事情的本質(zhì)是什么?
1、不管其中還有多少邏輯,本質(zhì)是一個(gè)http請(qǐng)求 和 一個(gè)插入語(yǔ)句
2、把循環(huán)中的sql查詢,改成批量查詢,最多再來(lái)一點(diǎn)緩存
3、基本就是幾個(gè)查詢的事兒
寫(xiě)到此處,問(wèn)題已經(jīng)分析清楚了,明天該干啥也有了明確的目標(biāo)。