diff --git a/model/channel_cache.go b/model/channel_cache.go index 1abc8b85..98522f70 100644 --- a/model/channel_cache.go +++ b/model/channel_cache.go @@ -5,6 +5,7 @@ import ( "fmt" "math/rand" "one-api/common" + "one-api/constant" "one-api/setting" "sort" "strings" @@ -66,6 +67,15 @@ func InitChannelCache() { channelSyncLock.Lock() group2model2channels = newGroup2model2channels + //channelsIDM = newChannelId2channel + for i, channel := range newChannelId2channel { + if oldChannel, ok := channelsIDM[i]; ok { + // 存在旧的渠道,如果是多key且轮询,保留轮询索引信息 + if oldChannel.ChannelInfo.IsMultiKey && oldChannel.ChannelInfo.MultiKeyMode == constant.MultiKeyModePolling { + channel.ChannelInfo.MultiKeyPollingIndex = oldChannel.ChannelInfo.MultiKeyPollingIndex + } + } + } channelsIDM = newChannelId2channel channelSyncLock.Unlock() common.SysLog("channels synced from database") @@ -203,9 +213,6 @@ func CacheGetChannel(id int) (*Channel, error) { if !ok { return nil, fmt.Errorf("渠道# %d,已不存在", id) } - if c.Status != common.ChannelStatusEnabled { - return nil, fmt.Errorf("渠道# %d,已被禁用", id) - } return c, nil } @@ -224,9 +231,6 @@ func CacheGetChannelInfo(id int) (*ChannelInfo, error) { if !ok { return nil, fmt.Errorf("渠道# %d,已不存在", id) } - if c.Status != common.ChannelStatusEnabled { - return nil, fmt.Errorf("渠道# %d,已被禁用", id) - } return &c.ChannelInfo, nil }