mirror of
https://github.com/e1732a364fed/v2ray_simple.git
synced 2025-09-26 21:01:46 +08:00
add enable_periodically_report_state AppConf, default is false
This commit is contained in:
@@ -37,6 +37,8 @@ type AppConf struct {
|
||||
|
||||
GeoipFile *string `toml:"geoip_file"`
|
||||
GeositeFolder *string `toml:"geosite_folder"`
|
||||
|
||||
EnablePeriodicallyReportState bool `toml:"enable_periodically_report_state"`
|
||||
}
|
||||
|
||||
func LoadVSConfFromBs(bs []byte) (vsConf VSConf, err error) {
|
||||
@@ -82,6 +84,7 @@ func GetAppConfByCurrentState() (ac AppConf) {
|
||||
return
|
||||
}
|
||||
|
||||
// 配置一些不需要machine的app级配置
|
||||
func (ac *AppConf) Setup() {
|
||||
if ac == nil {
|
||||
return
|
||||
@@ -142,6 +145,9 @@ func (m *M) LoadConfigByTomlBytes(bs []byte) (err error) {
|
||||
m.AppConf = *vsConf.AppConf
|
||||
|
||||
m.AppConf.Setup()
|
||||
if m.AppConf.EnablePeriodicallyReportState {
|
||||
m.enablePeriodicallyReportState = true
|
||||
}
|
||||
}
|
||||
if vsConf.ApiServerConf != nil {
|
||||
m.tomlApiServerConf = *vsConf.ApiServerConf
|
||||
|
@@ -1,5 +1,7 @@
|
||||
/*
|
||||
Package machine 包装运行代理所需的方法,被设计为可轻易被外部程序或库调用, 而无需理解其内部细节
|
||||
|
||||
一般而言,本包被命名为 engine 可能更恰当. 不过无所谓
|
||||
*/
|
||||
package machine
|
||||
|
||||
@@ -47,7 +49,8 @@ type M struct {
|
||||
|
||||
callbacks
|
||||
|
||||
stateReportTicker *time.Ticker
|
||||
enablePeriodicallyReportState bool
|
||||
stateReportTicker *time.Ticker
|
||||
}
|
||||
|
||||
func New() *M {
|
||||
@@ -105,20 +108,23 @@ func (m *M) Start() {
|
||||
dm.StartListen()
|
||||
}
|
||||
|
||||
if m.stateReportTicker == nil {
|
||||
m.stateReportTicker = time.NewTicker(time.Minute * 5) //每隔五分钟输出一次目前状态
|
||||
if m.enablePeriodicallyReportState {
|
||||
if m.stateReportTicker == nil {
|
||||
m.stateReportTicker = time.NewTicker(time.Minute * 5) //每隔五分钟输出一次目前状态
|
||||
|
||||
var sw = utils.PrefixWriter{
|
||||
Writer: os.Stdout,
|
||||
}
|
||||
go func() {
|
||||
for range m.stateReportTicker.C {
|
||||
sw.Prefix = []byte(time.Now().Format("2006-01-02 15:04:05.999 "))
|
||||
sw.Write([]byte("Current state:\n"))
|
||||
m.PrintAllStateForHuman(os.Stdout, false)
|
||||
var sw = utils.PrefixWriter{
|
||||
Writer: os.Stdout,
|
||||
}
|
||||
}()
|
||||
go func() {
|
||||
for range m.stateReportTicker.C {
|
||||
sw.Prefix = []byte(time.Now().Format("2006-01-02 15:04:05.999 "))
|
||||
sw.Write([]byte("Current state:\n"))
|
||||
m.PrintAllStateForHuman(os.Stdout, false)
|
||||
}
|
||||
}()
|
||||
}
|
||||
}
|
||||
|
||||
m.Unlock()
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user