feat: 在面板重启时通知agent更新信息
This commit is contained in:
		
							parent
							
								
									22842ebc75
								
							
						
					
					
						commit
						6a70e67ef9
					
				@ -4,10 +4,12 @@ import (
 | 
				
			|||||||
	"context"
 | 
						"context"
 | 
				
			||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
	"log"
 | 
						"log"
 | 
				
			||||||
 | 
						"time"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/naiba/nezha/cmd/dashboard/controller"
 | 
						"github.com/naiba/nezha/cmd/dashboard/controller"
 | 
				
			||||||
	"github.com/naiba/nezha/cmd/dashboard/rpc"
 | 
						"github.com/naiba/nezha/cmd/dashboard/rpc"
 | 
				
			||||||
	"github.com/naiba/nezha/model"
 | 
						"github.com/naiba/nezha/model"
 | 
				
			||||||
 | 
						"github.com/naiba/nezha/proto"
 | 
				
			||||||
	"github.com/naiba/nezha/service/singleton"
 | 
						"github.com/naiba/nezha/service/singleton"
 | 
				
			||||||
	"github.com/ory/graceful"
 | 
						"github.com/ory/graceful"
 | 
				
			||||||
	flag "github.com/spf13/pflag"
 | 
						flag "github.com/spf13/pflag"
 | 
				
			||||||
@ -68,6 +70,7 @@ func main() {
 | 
				
			|||||||
	go singleton.AlertSentinelStart()
 | 
						go singleton.AlertSentinelStart()
 | 
				
			||||||
	singleton.NewServiceSentinel(serviceSentinelDispatchBus)
 | 
						singleton.NewServiceSentinel(serviceSentinelDispatchBus)
 | 
				
			||||||
	srv := controller.ServeWeb(singleton.Conf.HTTPPort)
 | 
						srv := controller.ServeWeb(singleton.Conf.HTTPPort)
 | 
				
			||||||
 | 
						go dispatchReportInfoTask()
 | 
				
			||||||
	if err := graceful.Graceful(func() error {
 | 
						if err := graceful.Graceful(func() error {
 | 
				
			||||||
		return srv.ListenAndServe()
 | 
							return srv.ListenAndServe()
 | 
				
			||||||
	}, func(c context.Context) error {
 | 
						}, func(c context.Context) error {
 | 
				
			||||||
@ -80,3 +83,18 @@ func main() {
 | 
				
			|||||||
		log.Printf("NEZHA>> ERROR: %v", err)
 | 
							log.Printf("NEZHA>> ERROR: %v", err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func dispatchReportInfoTask() {
 | 
				
			||||||
 | 
						time.Sleep(time.Second * 15)
 | 
				
			||||||
 | 
						singleton.ServerLock.RLock()
 | 
				
			||||||
 | 
						defer singleton.ServerLock.RUnlock()
 | 
				
			||||||
 | 
						for _, server := range singleton.ServerList {
 | 
				
			||||||
 | 
							if server == nil || server.TaskStream == nil {
 | 
				
			||||||
 | 
								continue
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							server.TaskStream.Send(&proto.Task{
 | 
				
			||||||
 | 
								Type: model.TaskTypeReportHostInfo,
 | 
				
			||||||
 | 
								Data: "",
 | 
				
			||||||
 | 
							})
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										2
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								go.mod
									
									
									
									
									
								
							@ -16,6 +16,7 @@ require (
 | 
				
			|||||||
	github.com/json-iterator/go v1.1.12
 | 
						github.com/json-iterator/go v1.1.12
 | 
				
			||||||
	github.com/nicksnyder/go-i18n/v2 v2.4.0
 | 
						github.com/nicksnyder/go-i18n/v2 v2.4.0
 | 
				
			||||||
	github.com/ory/graceful v0.1.3
 | 
						github.com/ory/graceful v0.1.3
 | 
				
			||||||
 | 
						github.com/oschwald/maxminddb-golang v1.13.1
 | 
				
			||||||
	github.com/patrickmn/go-cache v2.1.0+incompatible
 | 
						github.com/patrickmn/go-cache v2.1.0+incompatible
 | 
				
			||||||
	github.com/robfig/cron/v3 v3.0.1
 | 
						github.com/robfig/cron/v3 v3.0.1
 | 
				
			||||||
	github.com/spf13/pflag v1.0.5
 | 
						github.com/spf13/pflag v1.0.5
 | 
				
			||||||
@ -61,7 +62,6 @@ require (
 | 
				
			|||||||
	github.com/mitchellh/mapstructure v1.5.0 // indirect
 | 
						github.com/mitchellh/mapstructure v1.5.0 // indirect
 | 
				
			||||||
	github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
 | 
						github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
 | 
				
			||||||
	github.com/modern-go/reflect2 v1.0.2 // indirect
 | 
						github.com/modern-go/reflect2 v1.0.2 // indirect
 | 
				
			||||||
	github.com/oschwald/maxminddb-golang v1.13.1 // indirect
 | 
					 | 
				
			||||||
	github.com/pelletier/go-toml/v2 v2.1.0 // indirect
 | 
						github.com/pelletier/go-toml/v2 v2.1.0 // indirect
 | 
				
			||||||
	github.com/pkg/errors v0.9.1 // indirect
 | 
						github.com/pkg/errors v0.9.1 // indirect
 | 
				
			||||||
	github.com/sagikazarmark/locafero v0.4.0 // indirect
 | 
						github.com/sagikazarmark/locafero v0.4.0 // indirect
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										3
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								go.sum
									
									
									
									
									
								
							@ -175,8 +175,9 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/
 | 
				
			|||||||
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
 | 
					github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
 | 
				
			||||||
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
 | 
					github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
 | 
				
			||||||
github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
 | 
					github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
 | 
				
			||||||
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
 | 
					 | 
				
			||||||
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
 | 
					github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
 | 
				
			||||||
 | 
					github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
 | 
				
			||||||
 | 
					github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
 | 
				
			||||||
github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8=
 | 
					github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8=
 | 
				
			||||||
github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU=
 | 
					github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU=
 | 
				
			||||||
github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI=
 | 
					github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI=
 | 
				
			||||||
 | 
				
			|||||||
@ -13,7 +13,7 @@ import (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
const (
 | 
					const (
 | 
				
			||||||
	_ = iota
 | 
						_ = iota
 | 
				
			||||||
	TaskTypeHTTPGET
 | 
						TaskTypeHTTPGet
 | 
				
			||||||
	TaskTypeICMPPing
 | 
						TaskTypeICMPPing
 | 
				
			||||||
	TaskTypeTCPPing
 | 
						TaskTypeTCPPing
 | 
				
			||||||
	TaskTypeCommand
 | 
						TaskTypeCommand
 | 
				
			||||||
@ -22,6 +22,7 @@ const (
 | 
				
			|||||||
	TaskTypeKeepalive
 | 
						TaskTypeKeepalive
 | 
				
			||||||
	TaskTypeTerminalGRPC
 | 
						TaskTypeTerminalGRPC
 | 
				
			||||||
	TaskTypeNAT
 | 
						TaskTypeNAT
 | 
				
			||||||
 | 
						TaskTypeReportHostInfo
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type TerminalTask struct {
 | 
					type TerminalTask struct {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user