From 56108e15d34b9a111e2e2c342d0891dcf401c861 Mon Sep 17 00:00:00 2001 From: qydysky Date: Mon, 21 Oct 2024 02:04:09 +0000 Subject: [PATCH] 1 --- config.go | 3 +++ rollRule.go | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/config.go b/config.go index 3d1f521..3916793 100755 --- a/config.go +++ b/config.go @@ -399,6 +399,9 @@ func (t *Back) SwapSign(logger Logger) { } else { t.verifyPeerCer, t.verifyPeerCerErr = os.ReadFile(path) } + if t.lastChosenT.IsZero() { + t.lastChosenT = time.Now() + } t.AlwaysUp = len(t.route.Backs) == 1 || t.AlwaysUp } diff --git a/rollRule.go b/rollRule.go index fc9d00d..e840532 100644 --- a/rollRule.go +++ b/rollRule.go @@ -3,6 +3,7 @@ package front import ( "math/rand/v2" "slices" + "time" ) var rollRuleMap = make(map[string]func(backLink []*Back)) @@ -30,7 +31,7 @@ func init() { rollRuleMap[`loop`] = func(backLink []*Back) { slices.SortStableFunc(backLink, func(a, b *Back) int { - return a.lastChosenT.Compare(b.lastChosenT) + return int(time.Since(a.lastChosenT).Milliseconds()/int64(a.Weight+1) - time.Since(b.lastChosenT).Milliseconds()/int64(b.Weight+1)) }) } } -- 2.39.2