diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..e69de29 diff --git a/examples/test_client.go b/examples/test_client.go index 770b0f9..7c07d75 100644 --- a/examples/test_client.go +++ b/examples/test_client.go @@ -14,12 +14,18 @@ import ( func main() { client := httpclient.NewClient(&httpclient.Config{ - Name: "test", - BaseUrl: "http://localhost:3001", + Name: "test", + BaseUrl: "http://localhost:3001", + ConsiderServerErrorAsFailure: true, + ServerErrorThreshold: 500, + ReadyToTrip: func(cunts httpclient.Counts) bool { + return cunts.TotalFailures > 2 + }, Timeout: 30 * time.Second, }) logger := plugins.NewLogger(nil, nil) + client.AddPlugin(logger) http.HandleFunc("/test", func(w http.ResponseWriter, r *http.Request) { diff --git a/httpclient/breaker_test.go b/httpclient/breaker_test.go new file mode 100644 index 0000000..d3ee62f --- /dev/null +++ b/httpclient/breaker_test.go @@ -0,0 +1 @@ +package httpclient diff --git a/httpclient/client.go b/httpclient/client.go index 1252bbf..dc9a430 100644 --- a/httpclient/client.go +++ b/httpclient/client.go @@ -20,7 +20,7 @@ type Config struct { MaxRequests uint32 Interval time.Duration Timeout time.Duration - ReadyToTrip func(cunts Counts) bool + ReadyToTrip func(counts Counts) bool OnStateChange func(name string, to State, from State) ConsiderServerErrorAsFailure bool diff --git a/httpclient/client_test.go b/httpclient/client_test.go new file mode 100644 index 0000000..d3ee62f --- /dev/null +++ b/httpclient/client_test.go @@ -0,0 +1 @@ +package httpclient diff --git a/httpclient/options_test.go b/httpclient/options_test.go new file mode 100644 index 0000000..d3ee62f --- /dev/null +++ b/httpclient/options_test.go @@ -0,0 +1 @@ +package httpclient