请求补偿

只要咱们的业务逻辑包含网络交互,就必须考虑:若是请求失败了,该怎么处理?网络

正常的状况下,有两种处理方式:函数

  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

相关文章
相关标签/搜索