3x-ui/web/job/xray_traffic_job.go

36 lines
667 B
Go
Raw Normal View History

2023-02-09 22:18:06 +03:00
package job
import (
"x-ui/logger"
"x-ui/web/service"
)
type XrayTrafficJob struct {
xrayService service.XrayService
inboundService service.InboundService
}
func NewXrayTrafficJob() *XrayTrafficJob {
return new(XrayTrafficJob)
}
func (j *XrayTrafficJob) Run() {
if !j.xrayService.IsXrayRunning() {
return
}
traffics, clientTraffics, err := j.xrayService.GetXrayTraffic()
if err != nil {
logger.Warning("get xray traffic failed:", err)
return
}
err, needRestart := j.inboundService.AddTraffic(traffics, clientTraffics)
2023-02-09 22:18:06 +03:00
if err != nil {
logger.Warning("add traffic failed:", err)
}
if needRestart {
j.xrayService.SetToNeedRestart()
2023-02-09 22:18:06 +03:00
}
}