mirror of
https://github.com/alireza0/x-ui.git
synced 2026-03-14 05:23:09 +00:00
0.0.2
- 增加设置总流量功能,流量超出后自动禁用 - 优化部分 ui 细节 - 修复监听 ip 不为空导致无法启动 xray 的问题 - 修复二维码链接没有包含 address 的问题
This commit is contained in:
20
web/web.go
20
web/web.go
@@ -21,7 +21,6 @@ import (
|
||||
"time"
|
||||
"x-ui/config"
|
||||
"x-ui/logger"
|
||||
"x-ui/util"
|
||||
"x-ui/util/common"
|
||||
"x-ui/web/controller"
|
||||
"x-ui/web/service"
|
||||
@@ -244,6 +243,7 @@ func (s *Server) startTask() {
|
||||
logger.Warning("start xray failed:", err)
|
||||
}
|
||||
var checkTime = 0
|
||||
// 每 30 秒检查一次 xray 是否在运行
|
||||
s.cron.AddFunc("@every 30s", func() {
|
||||
if s.xrayService.IsXrayRunning() {
|
||||
checkTime = 0
|
||||
@@ -255,9 +255,10 @@ func (s *Server) startTask() {
|
||||
}
|
||||
s.xrayService.SetIsNeedRestart(true)
|
||||
})
|
||||
|
||||
go func() {
|
||||
time.Sleep(time.Second * 5)
|
||||
// 与重启 xray 的时间错开
|
||||
// 每 10 秒统计一次流量,首次启动延迟 5 秒,与重启 xray 的时间错开
|
||||
s.cron.AddFunc("@every 10s", func() {
|
||||
if !s.xrayService.IsXrayRunning() {
|
||||
return
|
||||
@@ -273,6 +274,16 @@ func (s *Server) startTask() {
|
||||
}
|
||||
})
|
||||
}()
|
||||
|
||||
// 每分钟检查一次 inbound 流量超出情况
|
||||
s.cron.AddFunc("@every 1m", func() {
|
||||
needRestart, err := s.inboundService.DisableInvalidInbounds()
|
||||
if err != nil {
|
||||
logger.Warning("disable invalid inbounds err:", err)
|
||||
} else if needRestart {
|
||||
s.xrayService.SetIsNeedRestart(true)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (s *Server) Start() (err error) {
|
||||
@@ -343,11 +354,8 @@ func (s *Server) Start() (err error) {
|
||||
}
|
||||
|
||||
func (s *Server) Stop() error {
|
||||
if util.IsDone(s.ctx) {
|
||||
// 防止 gc 后调用第二次 Stop
|
||||
s.xrayService.StopXray()
|
||||
}
|
||||
s.cancel()
|
||||
s.xrayService.StopXray()
|
||||
if s.cron != nil {
|
||||
s.cron.Stop()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user