請求補償

只要咱們的業務邏輯包含網絡交互,就必須考慮:若是請求失敗了,該怎麼處理?網絡

正常的狀況下,有兩種處理方式:函數

  1. 當請求失敗的時候,咱們回退請求以前的修改。
  2. 當請求失敗的時候,咱們重試請求,直到成功。

在代碼上進行抽象處理,咱們能夠歸納爲:code

// 函數只是用來舉例,自己是一個處理熔斷的包
type runFunc func() error
type fallbackFunc func(error) error
func Go(name string, run runFunc, fallback fallbackFunc) chan error {
}

咱們執行函數run,若是返回成功,則整個函數返回;若是函數run執行失敗,則執行函數fallbackstring

相關文章
相關標籤/搜索