Evan Huus eaf0b22478 More efficient synchronization 11 năm trước cách đây
..
README.md b89f64cc19 Add build status to readmes 11 năm trước cách đây
breaker.go eaf0b22478 More efficient synchronization 11 năm trước cách đây
breaker_test.go ba556f4cd0 Add test of panic behaviour for 100% statement coverage 11 năm trước cách đây

README.md

circuit-breaker

Build Status GoDoc

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
	}
}