Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
phsl
/
new-api
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
bbb16051
authored
Oct 11, 2025
by
anime
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix(channel): handle dynamic frequency updates
parent
cac0be2e
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
13 additions
and
38 deletions
+13
-38
controller/channel-test.go
+13
-38
No files found.
controller/channel-test.go
View file @
bbb16051
...
...
@@ -617,47 +617,22 @@ var autoTestChannelsOnce sync.Once
func
AutomaticallyTestChannels
()
{
autoTestChannelsOnce
.
Do
(
func
()
{
go
func
()
{
for
{
if
!
operation_setting
.
GetMonitorSetting
()
.
AutoTestChannelEnabled
{
time
.
Sleep
(
10
*
time
.
Minute
)
continue
}
for
{
frequency
:=
operation_setting
.
GetMonitorSetting
()
.
AutoTestChannelMinutes
common
.
SysLog
(
fmt
.
Sprintf
(
"automatically test channels with interval %d minutes"
,
frequency
))
time
.
Sleep
(
time
.
Duration
(
frequency
)
*
time
.
Minute
)
common
.
SysLog
(
"automatically testing all channels"
)
_
=
testAllChannels
(
false
)
common
.
SysLog
(
"automatically channel test finished"
)
if
!
operation_setting
.
GetMonitorSetting
()
.
AutoTestChannelEnabled
{
time
.
Sleep
(
10
*
time
.
Minute
)
continue
break
}
frequency
:=
operation_setting
.
GetMonitorSetting
()
.
AutoTestChannelMinutes
common
.
SysLog
(
fmt
.
Sprintf
(
"starting tests with interval %d minutes"
,
frequency
))
ticker
:=
time
.
NewTicker
(
time
.
Duration
(
frequency
)
*
time
.
Minute
)
// 使用匿名函数来绑定 ticker 的生命周期
func
()
{
defer
ticker
.
Stop
()
// 立即执行一次
common
.
SysLog
(
"automatically testing all channels (initial run)"
)
_
=
testAllChannels
(
false
)
common
.
SysLog
(
"automatically channel test finished"
)
// 开始循环等待后续的 tick
for
{
select
{
case
<-
ticker
.
C
:
// 检查是否需要退出或重新配置
if
!
operation_setting
.
GetMonitorSetting
()
.
AutoTestChannelEnabled
{
return
}
newFrequency
:=
operation_setting
.
GetMonitorSetting
()
.
AutoTestChannelMinutes
if
newFrequency
!=
frequency
{
return
}
// 执行定时任务
common
.
SysLog
(
"automatically testing all channels"
)
_
=
testAllChannels
(
false
)
common
.
SysLog
(
"automatically channel test finished"
)
}
}
}()
}
}
()
}
})
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment