Merge pull request #63 from kujohn/pool-custom-handler

Allow built in selectionHandlers to be reused outside of package
This commit is contained in:
Xing 2015-12-14 18:41:29 +08:00
commit 21cc8de64f

View File

@ -11,9 +11,7 @@ const (
)
var (
ErrNotFound = errors.New("Server Not Found")
SelectWithRate = selectWithRate
SelectRandom = selectRandom
ErrNotFound = errors.New("Server Not Found")
)
type PoolClient struct {
@ -24,7 +22,7 @@ type PoolClient struct {
type SelectionHandler func(map[string]*PoolClient, string) string
func selectWithRate(pool map[string]*PoolClient,
func SelectWithRate(pool map[string]*PoolClient,
last string) (addr string) {
total := 0
for _, item := range pool {
@ -36,7 +34,7 @@ func selectWithRate(pool map[string]*PoolClient,
return last
}
func selectRandom(pool map[string]*PoolClient,
func SelectRandom(pool map[string]*PoolClient,
last string) (addr string) {
r := rand.Intn(len(pool))
i := 0