8000 GitHub - moxiaomomo/circuitbreaker
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

moxiaomomo/circuitbreaker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

circuitbreaker

Build Status Go Report Card

This is a circuitbreaker module which is easy to use when you build your microservice.

How to use it

// func NewCirucuitBreaker(timeWin time.Duration, failCnt int, failPercent int) *Circuits

// create an instance of circuitbreaker
cbs := NewCirucuitBreaker(time.Second, 150, 20)
// register a command to a circuitbreaker
suc := cbs.RegisterCommandAsDefault(testcmd)

// report a result (true or false) to a circuit with the command-name
cbs.Report(testcmd, false)
cbs.Report(testcmd, true)

// to check if current request could be allowed
execAllow := cbs.AllowExec(testcmd)

Testing

$ go test
[DEBUG] To run test for command: testcmd
[DEBUG] [spec]total: 1000, allow: 1000
[DEBUG] Closed --> Open
[DEBUG] Open --> HalfOpen
[DEBUG] HalfOpen --> Closed
[DEBUG] Closed --> Open
[DEBUG] [spec]total: 1000, allow: 809
[DEBUG] Open --> HalfOpen
[DEBUG] HalfOpen --> Closed
[DEBUG] Closed --> Open
[DEBUG] Open --> HalfOpen
[DEBUG] HalfOpen --> Closed
[DEBUG] Closed --> Open
[DEBUG] Open --> HalfOpen
[DEBUG] HalfOpen --> Closed
[DEBUG] Closed --> Open
[DEBUG] Open --> HalfOpen
[DEBUG] HalfOpen --> Closed
[DEBUG] Closed --> Open
[DEBUG] Open --> HalfOpen
[DEBUG] HalfOpen --> Closed
[DEBUG] Closed --> Open
[DEBUG] Open --> HalfOpen
[DEBUG] HalfOpen --> Closed
[DEBUG] Closed --> Open
[DEBUG] [spec]total: 1000, allow: 24
[DEBUG] Closed --> Open
[DEBUG] Open --> HalfOpen
[DEBUG] Open --> HalfOpen
[DEBUG] HalfOpen --> Closed
[DEBUG] Closed --> Open
[DEBUG] Open --> HalfOpen
[DEBUG] HalfOpen --> Closed
[DEBUG] Closed --> Open
[DEBUG] Open --> HalfOpen
[DEBUG] HalfOpen --> Closed
[DEBUG] [rand]total: 1000, allow: 517
PASS
ok      github.com/moxiaomomo/circuitbreaker    24.737s

About

No description or website provided.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

0