v2.6.7
This commit is contained in:
parent
f1be7d1ea8
commit
d0eae58a29
28
main.go
28
main.go
@ -10,7 +10,10 @@ import (
|
|||||||
// "strings"
|
// "strings"
|
||||||
"syscall"
|
"syscall"
|
||||||
_ "unsafe"
|
_ "unsafe"
|
||||||
|
// 中文注释: 新增了 time 和 x-ui/job 的导入,这是运行定时任务所必需的
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"x-ui/web/job"
|
||||||
"x-ui/config"
|
"x-ui/config"
|
||||||
"x-ui/database"
|
"x-ui/database"
|
||||||
"x-ui/logger"
|
"x-ui/logger"
|
||||||
@ -24,6 +27,7 @@ import (
|
|||||||
"github.com/op/go-logging"
|
"github.com/op/go-logging"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// runWebServer 是【设备限制】项目的主执行函数
|
||||||
func runWebServer() {
|
func runWebServer() {
|
||||||
log.Printf("Starting %v %v", config.GetName(), config.GetVersion())
|
log.Printf("Starting %v %v", config.GetName(), config.GetVersion())
|
||||||
|
|
||||||
@ -49,6 +53,9 @@ func runWebServer() {
|
|||||||
log.Fatalf("Error initializing database: %v", err)
|
log.Fatalf("Error initializing database: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 中文注释: xrayService 在这里被创建,我们需要将它传递给我们的新任务
|
||||||
|
xrayService := service.XrayService{}
|
||||||
|
|
||||||
var server *web.Server
|
var server *web.Server
|
||||||
server = web.NewServer()
|
server = web.NewServer()
|
||||||
global.SetWebServer(server)
|
global.SetWebServer(server)
|
||||||
@ -67,6 +74,27 @@ func runWebServer() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 中文注释: 在面板服务启动后,我们在这里启动设备限制的后台任务
|
||||||
|
go func() {
|
||||||
|
// 中文注释: 等待5秒,确保面板和Xray服务已基本稳定,避免任务启动过早
|
||||||
|
time.Sleep(5 * time.Second)
|
||||||
|
|
||||||
|
// 中文注释: 创建一个定时器。这里的 "10 * time.Second" 就是任务执行的间隔时间。
|
||||||
|
// 您可以修改 10 为 2 或 1,来实现更短的延迟。
|
||||||
|
// 例如: time.NewTicker(2 * time.Second) 就是2秒执行一次。
|
||||||
|
ticker := time.NewTicker(10 * time.Second)
|
||||||
|
defer ticker.Stop()
|
||||||
|
|
||||||
|
// 中文注释: 创建我们的任务实例, 并传入 xrayService
|
||||||
|
checkJob := job.NewCheckDeviceLimitJob(&xrayService)
|
||||||
|
|
||||||
|
// 中文注释: 使用一个无限循环,每次定时器触发,就执行一次任务的 Run() 函数
|
||||||
|
for {
|
||||||
|
<-ticker.C
|
||||||
|
checkJob.Run()
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
sigCh := make(chan os.Signal, 1)
|
sigCh := make(chan os.Signal, 1)
|
||||||
// Trap shutdown signals
|
// Trap shutdown signals
|
||||||
signal.Notify(sigCh, syscall.SIGHUP, syscall.SIGTERM)
|
signal.Notify(sigCh, syscall.SIGHUP, syscall.SIGTERM)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user