mirror of
https://github.com/linux-do/new-api.git
synced 2025-09-17 16:06:38 +08:00
fix: 修复渠道一致性问题
This commit is contained in:
parent
febcadb42c
commit
e2a1caba4c
@ -101,10 +101,12 @@ func Distribute() func(c *gin.Context) {
|
|||||||
channel, err = model.CacheGetRandomSatisfiedChannel(userGroup, modelRequest.Model)
|
channel, err = model.CacheGetRandomSatisfiedChannel(userGroup, modelRequest.Model)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
message := fmt.Sprintf("当前分组 %s 下对于模型 %s 无可用渠道", userGroup, modelRequest.Model)
|
message := fmt.Sprintf("当前分组 %s 下对于模型 %s 无可用渠道", userGroup, modelRequest.Model)
|
||||||
|
// 如果错误,但是渠道不为空,说明是数据库一致性问题
|
||||||
if channel != nil {
|
if channel != nil {
|
||||||
common.SysError(fmt.Sprintf("渠道不存在:%d", channel.Id))
|
common.SysError(fmt.Sprintf("渠道不存在:%d", channel.Id))
|
||||||
message = "数据库一致性已被破坏,请联系管理员"
|
message = "数据库一致性已被破坏,请联系管理员"
|
||||||
}
|
}
|
||||||
|
// 如果错误,而且渠道为空,说明是没有可用渠道
|
||||||
abortWithMessage(c, http.StatusServiceUnavailable, message)
|
abortWithMessage(c, http.StatusServiceUnavailable, message)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -159,5 +159,6 @@ func FixAbility() (int, error) {
|
|||||||
count++
|
count++
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
InitChannelCache()
|
||||||
return count, nil
|
return count, nil
|
||||||
}
|
}
|
||||||
|
@ -258,8 +258,8 @@ func CacheGetRandomSatisfiedChannel(group string, model string) (*Channel, error
|
|||||||
return channel, nil
|
return channel, nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// return the last channel if no channel is found
|
// return null if no channel is not found
|
||||||
return channels[endIdx-1], nil
|
return nil, errors.New("channel not found")
|
||||||
}
|
}
|
||||||
|
|
||||||
func CacheGetChannel(id int) (*Channel, error) {
|
func CacheGetChannel(id int) (*Channel, error) {
|
||||||
|
Loading…
Reference in New Issue
Block a user