python - 編寫API時,遇到504錯誤,如何正確處理
問題描述
自己寫了個測試數(shù)據(jù)庫連接的API,發(fā)現(xiàn)本地測試時,數(shù)據(jù)庫的ip地址錯誤可以正常返回自己定義的錯誤,但是放到自己的服務(wù)器上測試,發(fā)現(xiàn)請求會超時,并且返回html格式的504錯誤.后端是采取python,flask,部署是結(jié)合uwsgi和Nginx。
問題解答
回答1:504錯誤是服務(wù)器正在作為一個網(wǎng)關(guān)或代理來完成客戶端的請求,因為后臺代碼可能訪問了另一個服務(wù)器,我這里是訪問了一個遠程數(shù)據(jù)庫,所以服務(wù)器為了完成這個請求,去訪問這個遠程數(shù)據(jù)庫的服務(wù)器,但是沒有得到及時的響應(yīng),因為配合了Nginx,所以一個請求設(shè)置的超時時間時60s,在這個時間段內(nèi),還是沒有得到及時的響應(yīng),返回504錯誤。我設(shè)置了連接遠程數(shù)據(jù)庫的超時時間為60秒以內(nèi),他就可以返回錯誤信息,并被我的后臺捕獲到異常,然后返回我自己的定義的錯誤格式。
回答2:服務(wù)器返回504說明沒有響應(yīng)請求,可能是出現(xiàn)了意料之外的錯誤
檢查一下業(yè)務(wù)邏輯,針對每種情況都要給前端返回響應(yīng),最好帶上錯誤信息
