move restart cron to web.go

Co-Authored-By: Alireza Ahmadi <alireza7@gmail.com>
This commit is contained in:
MHSanaei 2023-09-06 18:22:37 +03:30
parent 4e6484caec
commit be4a68bd8b
2 changed files with 10 additions and 16 deletions

View file

@ -4,8 +4,6 @@ import (
"fmt" "fmt"
"strconv" "strconv"
"x-ui/database/model" "x-ui/database/model"
"x-ui/logger"
"x-ui/web/global"
"x-ui/web/service" "x-ui/web/service"
"x-ui/web/session" "x-ui/web/session"
@ -20,7 +18,6 @@ type InboundController struct {
func NewInboundController(g *gin.RouterGroup) *InboundController { func NewInboundController(g *gin.RouterGroup) *InboundController {
a := &InboundController{} a := &InboundController{}
a.initRouter(g) a.initRouter(g)
a.startTask()
return a return a
} }
@ -42,19 +39,6 @@ func (a *InboundController) initRouter(g *gin.RouterGroup) {
g.POST("/delDepletedClients/:id", a.delDepletedClients) g.POST("/delDepletedClients/:id", a.delDepletedClients)
} }
func (a *InboundController) startTask() {
webServer := global.GetWebServer()
c := webServer.GetCron()
c.AddFunc("@every 10s", func() {
if a.xrayService.IsNeedRestartAndSetFalse() {
err := a.xrayService.RestartXray(false)
if err != nil {
logger.Error("restart xray failed:", err)
}
}
})
}
func (a *InboundController) getInbounds(c *gin.Context) { func (a *InboundController) getInbounds(c *gin.Context) {
user := session.GetLoginUser(c) user := session.GetLoginUser(c)
inbounds, err := a.inboundService.GetInbounds(user.Id) inbounds, err := a.inboundService.GetInbounds(user.Id)

View file

@ -241,6 +241,16 @@ func (s *Server) startTask() {
// Check whether xray is running every 30 seconds // Check whether xray is running every 30 seconds
s.cron.AddJob("@every 30s", job.NewCheckXrayRunningJob()) s.cron.AddJob("@every 30s", job.NewCheckXrayRunningJob())
// Check if xray needs to be restarted
s.cron.AddFunc("@every 10s", func() {
if s.xrayService.IsNeedRestartAndSetFalse() {
err := s.xrayService.RestartXray(false)
if err != nil {
logger.Error("restart xray failed:", err)
}
}
})
go func() { go func() {
time.Sleep(time.Second * 5) time.Sleep(time.Second * 5)
// Statistics every 10 seconds, start the delay for 5 seconds for the first time, and staggered with the time to restart xray // Statistics every 10 seconds, start the delay for 5 seconds for the first time, and staggered with the time to restart xray