https://github.com/hailocab/go-hostpool.git

evan.hong 4c059b4138 init %!s(int64=3) %!d(string=hai) anos
.gitignore 4c059b4138 init %!s(int64=3) %!d(string=hai) anos
.travis.yml 4c059b4138 init %!s(int64=3) %!d(string=hai) anos
LICENSE 4c059b4138 init %!s(int64=3) %!d(string=hai) anos
README.md 4c059b4138 init %!s(int64=3) %!d(string=hai) anos
epsilon_greedy.go 4c059b4138 init %!s(int64=3) %!d(string=hai) anos
epsilon_value_calculators.go 4c059b4138 init %!s(int64=3) %!d(string=hai) anos
example_test.go 4c059b4138 init %!s(int64=3) %!d(string=hai) anos
host_entry.go 4c059b4138 init %!s(int64=3) %!d(string=hai) anos
hostpool.go 4c059b4138 init %!s(int64=3) %!d(string=hai) anos
hostpool_test.go 4c059b4138 init %!s(int64=3) %!d(string=hai) anos

README.md

go-hostpool

A Go package to intelligently and flexibly pool among multiple hosts from your Go application. Host selection can operate in round robin or epsilon greedy mode, and unresponsive hosts are avoided. Usage example:

hp := hostpool.NewEpsilonGreedy([]string{"a", "b"}, 0, &hostpool.LinearEpsilonValueCalculator{})
hostResponse := hp.Get()
hostname := hostResponse.Host()
err := _ // (make a request with hostname)
hostResponse.Mark(err)

View more detailed documentation on godoc.org