Http請(qǐng)求長(zhǎng)時(shí)間等待無(wú)結(jié)果返回解決辦法
今天遇到一個(gè)奇葩的問(wèn)題,這個(gè)程序主要是用于調(diào)用接口搜集數(shù)據(jù)的,但是,發(fā)生了不好的事情就是服務(wù)器中啟動(dòng)的進(jìn)程非常多,一直無(wú)法結(jié)束,沒(méi)辦法只能采用kill的方法,將所有的這部分進(jìn)程殺掉。
分析了下程序,寫了個(gè)測(cè)試,本地跑依舊長(zhǎng)時(shí)間等待,無(wú)法運(yùn)行,也不拋出異常,最后發(fā)現(xiàn)問(wèn)題在于發(fā)送請(qǐng)求的部分,一直在等待對(duì)方服務(wù)器響應(yīng),由于采用的是keep-alive方式的連接,這里沒(méi)有采用超時(shí)的方式,以至于程序會(huì)長(zhǎng)時(shí)間等待下去。
經(jīng)過(guò)測(cè)試發(fā)現(xiàn)開啟進(jìn)程過(guò)多在于沒(méi)有設(shè)置超時(shí),希望讀者注意這部分,否則,容易出現(xiàn)筆者遇到的這種問(wèn)題。最終的問(wèn)題應(yīng)該是接口提供方的異常導(dǎo)致。