EricKIm ac134e7565 240528-0919-Kim vor 5 Monaten
..
README.md ac134e7565 240528-0919-Kim vor 5 Monaten
breaker.go ac134e7565 240528-0919-Kim vor 5 Monaten

README.md

circuit-breaker

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