名称 最后更新
..
README.md 正在载入提交数据...
breaker.go 正在载入提交数据...

circuit-breaker

Build Status GoDoc Code of Conduct

The circuit-breaker resiliency pattern for golang.

Creating a breaker takes three parameters:

  • error threshold (for opening the breaker)
  • success threshold (for closing the breaker)
  • timeout (how long to keep the breaker open)
b := breaker.New(3, 1, 5*time.Second)

for {
    result := b.Run(func() error {
        // communicate with some external service and
        // return an error if the communication failed
        return nil
    })

    switch result {
    case nil:
        // success!
    case breaker.ErrBreakerOpen:
        // our function wasn't run because the breaker was open
    default:
        // some other error
    }
}