Commit 316c0a59 by CaIon

feat: retain polling index for multi-key channels during sync

parent f0b024eb
...@@ -5,6 +5,7 @@ import ( ...@@ -5,6 +5,7 @@ import (
"fmt" "fmt"
"math/rand" "math/rand"
"one-api/common" "one-api/common"
"one-api/constant"
"one-api/setting" "one-api/setting"
"sort" "sort"
"strings" "strings"
...@@ -66,6 +67,15 @@ func InitChannelCache() { ...@@ -66,6 +67,15 @@ func InitChannelCache() {
channelSyncLock.Lock() channelSyncLock.Lock()
group2model2channels = newGroup2model2channels 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 channelsIDM = newChannelId2channel
channelSyncLock.Unlock() channelSyncLock.Unlock()
common.SysLog("channels synced from database") common.SysLog("channels synced from database")
...@@ -203,9 +213,6 @@ func CacheGetChannel(id int) (*Channel, error) { ...@@ -203,9 +213,6 @@ func CacheGetChannel(id int) (*Channel, error) {
if !ok { if !ok {
return nil, fmt.Errorf("渠道# %d,已不存在", id) return nil, fmt.Errorf("渠道# %d,已不存在", id)
} }
if c.Status != common.ChannelStatusEnabled {
return nil, fmt.Errorf("渠道# %d,已被禁用", id)
}
return c, nil return c, nil
} }
...@@ -224,9 +231,6 @@ func CacheGetChannelInfo(id int) (*ChannelInfo, error) { ...@@ -224,9 +231,6 @@ func CacheGetChannelInfo(id int) (*ChannelInfo, error) {
if !ok { if !ok {
return nil, fmt.Errorf("渠道# %d,已不存在", id) return nil, fmt.Errorf("渠道# %d,已不存在", id)
} }
if c.Status != common.ChannelStatusEnabled {
return nil, fmt.Errorf("渠道# %d,已被禁用", id)
}
return &c.ChannelInfo, nil return &c.ChannelInfo, nil
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment