Update channel.go
This commit is contained in:
@@ -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())
|
||||
|
||||
Reference in New Issue
Block a user