|
@@ -28,6 +28,10 @@ var (
|
|
|
codexCredentialRefreshRunning atomic.Bool
|
|
codexCredentialRefreshRunning atomic.Bool
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
|
|
+func shouldAutoRefreshCodexChannelStatus(status int) bool {
|
|
|
|
|
+ return status == common.ChannelStatusEnabled || status == common.ChannelStatusAutoDisabled
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
func StartCodexCredentialAutoRefreshTask() {
|
|
func StartCodexCredentialAutoRefreshTask() {
|
|
|
codexCredentialRefreshOnce.Do(func() {
|
|
codexCredentialRefreshOnce.Do(func() {
|
|
|
if !common.IsMasterNode {
|
|
if !common.IsMasterNode {
|
|
@@ -65,7 +69,11 @@ func runCodexCredentialAutoRefreshOnce() {
|
|
|
var channels []*model.Channel
|
|
var channels []*model.Channel
|
|
|
err := model.DB.
|
|
err := model.DB.
|
|
|
Select("id", "name", "key", "status", "channel_info").
|
|
Select("id", "name", "key", "status", "channel_info").
|
|
|
- Where("type = ? AND status = 1", constant.ChannelTypeCodex).
|
|
|
|
|
|
|
+ Where("type = ? AND (status = ? OR status = ?)",
|
|
|
|
|
+ constant.ChannelTypeCodex,
|
|
|
|
|
+ common.ChannelStatusEnabled,
|
|
|
|
|
+ common.ChannelStatusAutoDisabled,
|
|
|
|
|
+ ).
|
|
|
Order("id asc").
|
|
Order("id asc").
|
|
|
Limit(codexCredentialRefreshBatchSize).
|
|
Limit(codexCredentialRefreshBatchSize).
|
|
|
Offset(offset).
|
|
Offset(offset).
|