add enable_periodically_report_state AppConf, default is false

This commit is contained in:
e1732a364fed
2000-01-01 00:00:00 +00:00
parent b6a2488d2e
commit 8ff9c91c23
2 changed files with 24 additions and 12 deletions

View File

@@ -37,6 +37,8 @@ type AppConf struct {
GeoipFile *string `toml:"geoip_file"` GeoipFile *string `toml:"geoip_file"`
GeositeFolder *string `toml:"geosite_folder"` GeositeFolder *string `toml:"geosite_folder"`
EnablePeriodicallyReportState bool `toml:"enable_periodically_report_state"`
} }
func LoadVSConfFromBs(bs []byte) (vsConf VSConf, err error) { func LoadVSConfFromBs(bs []byte) (vsConf VSConf, err error) {
@@ -82,6 +84,7 @@ func GetAppConfByCurrentState() (ac AppConf) {
return return
} }
// 配置一些不需要machine的app级配置
func (ac *AppConf) Setup() { func (ac *AppConf) Setup() {
if ac == nil { if ac == nil {
return return
@@ -142,6 +145,9 @@ func (m *M) LoadConfigByTomlBytes(bs []byte) (err error) {
m.AppConf = *vsConf.AppConf m.AppConf = *vsConf.AppConf
m.AppConf.Setup() m.AppConf.Setup()
if m.AppConf.EnablePeriodicallyReportState {
m.enablePeriodicallyReportState = true
}
} }
if vsConf.ApiServerConf != nil { if vsConf.ApiServerConf != nil {
m.tomlApiServerConf = *vsConf.ApiServerConf m.tomlApiServerConf = *vsConf.ApiServerConf

View File

@@ -1,5 +1,7 @@
/* /*
Package machine 包装运行代理所需的方法,被设计为可轻易被外部程序或库调用, 而无需理解其内部细节 Package machine 包装运行代理所需的方法,被设计为可轻易被外部程序或库调用, 而无需理解其内部细节
一般而言,本包被命名为 engine 可能更恰当. 不过无所谓
*/ */
package machine package machine
@@ -47,6 +49,7 @@ type M struct {
callbacks callbacks
enablePeriodicallyReportState bool
stateReportTicker *time.Ticker stateReportTicker *time.Ticker
} }
@@ -105,6 +108,7 @@ func (m *M) Start() {
dm.StartListen() dm.StartListen()
} }
if m.enablePeriodicallyReportState {
if m.stateReportTicker == nil { if m.stateReportTicker == nil {
m.stateReportTicker = time.NewTicker(time.Minute * 5) //每隔五分钟输出一次目前状态 m.stateReportTicker = time.NewTicker(time.Minute * 5) //每隔五分钟输出一次目前状态
@@ -119,6 +123,8 @@ func (m *M) Start() {
} }
}() }()
} }
}
m.Unlock() m.Unlock()
} }