diff --git a/model/channel_cache.go b/model/channel_cache.go index 0df14572f..ddd1ddde3 100644 --- a/model/channel_cache.go +++ b/model/channel_cache.go @@ -166,6 +166,11 @@ func GetRandomSatisfiedChannel(group string, model string, retry int) (*Channel, } // Calculate the total weight of all channels up to endIdx totalWeight := sumWeight * smoothingFactor + + // totalWeight 小于等于0时,设置为1,选择第一个渠道 + if totalWeight <= 0 { + totalWeight = 1 + } // Generate a random value in the range [0, totalWeight) randomWeight := rand.Intn(totalWeight)