亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在重新初始化連接失敗時重試

在重新初始化連接失敗時重試

Go
叮當貓咪 2022-09-26 15:33:57
想知道為什么 redigo 決定不導出 errorConn 類型,這將允許應用程序對連接失敗進行特定的錯誤處理。實現后,應用程序必須將這些錯誤作為一般錯誤進行處理。例如,我們的應用程序通常不關心單個 PUT 是否失敗,但如果問題是 Redis 連接失敗或 redis 池耗盡,則繼續執行下一個 PUT(特別是如果它需要打開新連接)是一個壞主意。我們應該停止并重試(使用指數退退),直到連接恢復。代碼示例,其中 redigo 在連接池耗盡時返回一般錯誤
查看完整描述

1 回答

?
嗶嗶one

TA貢獻1854條經驗 獲得超8個贊

鏈接中的代碼行返回兩個相應類型的值:。(Conn, error)


if !p.Wait && p.MaxActive > 0 && p.active >= p.MaxActive {

    p.mu.Unlock()

    return errorConn{ErrPoolExhausted}, ErrPoolExhausted

}

類型是帶有方法的接口。ConnErr


// Err returns a non-nil value when the connection is not usable.

Err() error

因此,要獲取基礎錯誤,您可以:


在第一個返回值上調用該方法;或Err

檢查第二個返回值。error

作為旁注,比較錯誤的推薦方法是使用和/或來自標準庫錯誤包。errors.Iserrors.As


查看完整回答
反對 回復 2022-09-26
  • 1 回答
  • 0 關注
  • 87 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號