1 回答
TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊
我們通過一些手段嘗試性的觸發(fā)問題現(xiàn)象:
1、測試環(huán)境下,清空access_token的redis數(shù)據(jù)。
2、正常測試,功能ok,查看access_token的redis內(nèi)容,這里假設(shè)值為A。
3、手動調(diào)用接口刷新access_token,大概十幾次后,值變化為B。
4、再次正常測試,發(fā)現(xiàn)功能異常(因?yàn)榇藭r(shí)存儲在redis的access_token已經(jīng)過期)。
5、清空access_token的redis數(shù)據(jù),再次測試,功能又恢復(fù)正常。
現(xiàn)在問題終于變成必現(xiàn)的了:)
解決方案
現(xiàn)在我們搞清楚問題的原因是存儲在redis的access_token可能在很短的時(shí)間內(nèi)過期(因?yàn)橛刑嘀锌胤?wù)器啦),但是我們一般設(shè)置的有效期都接近或等于7200s,這就導(dǎo)致一旦出現(xiàn)問題的話,如果不清理redis,問題就會持續(xù)2小時(shí)左右,這簡直就是災(zāi)難!
目前想到的比較理想的解決方案就是:服務(wù)器發(fā)現(xiàn)功能異常時(shí),刷新access_token并更新redis,然后再次調(diào)用接口。這種容錯(cuò)機(jī)制本來是微信的事-_-!
添加回答
舉報(bào)
