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

41 lines
887 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
outboundService service.OutboundService
2023-02-09 22:18:06 +03:00
}
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, needRestart0 := j.inboundService.AddTraffic(traffics, clientTraffics)
2023-02-09 22:18:06 +03:00
if err != nil {
logger.Warning("add inbound traffic failed:", err)
2023-02-09 22:18:06 +03:00
}
err, needRestart1 := j.outboundService.AddTraffic(traffics, clientTraffics)
if err != nil {
logger.Warning("add outbound traffic failed:", err)
}
if needRestart0 || needRestart1 {
j.xrayService.SetToNeedRestart()
2023-02-09 22:18:06 +03:00
}
}