Update channel.go

This commit is contained in:
xqx333
2024-12-17 12:11:24 +08:00
committed by GitHub
parent 739c0cc334
commit 173c9bc669

View File

@@ -4,6 +4,7 @@ import (
"encoding/json"
"one-api/common"
"strings"
"sync"
"gorm.io/gorm"
)
@@ -290,7 +291,19 @@ func (channel *Channel) Delete() error {
return err
}
var channelStatusLock sync.Mutex
func UpdateChannelStatusById(id int, status int, reason string) {
if (common.MemoryCacheEnabled) {
channelStatusLock.Lock()
channelCache, err := CacheGetChannel(id)
// 如果缓存渠道不存在或渠道已是目标状态,直接返回
if err != nil || channelCache.Status == status {
channelStatusLock.Unlock()
return
}
CacheUpdateChannelStatus(id, status)
channelStatusLock.Unlock()
}
err := UpdateAbilityStatus(id, status == common.ChannelStatusEnabled)
if err != nil {
common.SysError("failed to update ability status: " + err.Error())