Merge branch 'dev-lwl/consul' into test
This commit is contained in:
commit
56bca2291c
|
@ -39,17 +39,19 @@ func StartHttpServer(srv *http.Server, cfg *configcenter.DefaultConfig, ip strin
|
||||||
setServerStatusFD(ServerStatusFDRun)
|
setServerStatusFD(ServerStatusFDRun)
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
done := make(chan int)
|
||||||
|
go func() {
|
||||||
quit := make(chan os.Signal)
|
quit := make(chan os.Signal)
|
||||||
signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM)
|
signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM)
|
||||||
<-quit
|
for {
|
||||||
|
select {
|
||||||
|
case <-quit:
|
||||||
logger.Info("Shutdown Server ...")
|
logger.Info("Shutdown Server ...")
|
||||||
|
|
||||||
if err := servicediscovery.DeRegister(ip, port); err != nil {
|
if err := servicediscovery.DeRegister(ip, port); err != nil {
|
||||||
logger.Fatal("DeRegister fail: %v", err)
|
logger.Fatal("DeRegister fail: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx, cancel := context.WithTimeout(context.Background(), 1*time.Second)
|
ctx, cancel := context.WithTimeout(context.Background(), 1*time.Second)
|
||||||
defer cancel()
|
|
||||||
if err := srv.Shutdown(ctx); err != nil {
|
if err := srv.Shutdown(ctx); err != nil {
|
||||||
logger.Fatal("Server Shutdown:", err)
|
logger.Fatal("Server Shutdown:", err)
|
||||||
}
|
}
|
||||||
|
@ -61,6 +63,15 @@ func StartHttpServer(srv *http.Server, cfg *configcenter.DefaultConfig, ip strin
|
||||||
|
|
||||||
logger.Info("Server exited")
|
logger.Info("Server exited")
|
||||||
setServerStatusFD(ServerStatusFDStop)
|
setServerStatusFD(ServerStatusFDStop)
|
||||||
|
cancel()
|
||||||
|
done <- 1
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
|
<-done
|
||||||
|
logger.Info("Server done")
|
||||||
}
|
}
|
||||||
|
|
||||||
func registerSD(ip string, port int) error {
|
func registerSD(ip string, port int) error {
|
||||||
|
@ -92,7 +103,7 @@ func registerSD(ip string, port int) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
func setServerStatusFD(status string) {
|
func setServerStatusFD(status string) {
|
||||||
serverStatusFdPath := "/app/SERVER_STATUS_FD"
|
serverStatusFdPath := "/Users/erwin/SERVER_STATUS_FD"
|
||||||
cmd := exec.Command("sh", "-c", fmt.Sprintf("echo %s > %s", status, serverStatusFdPath))
|
cmd := exec.Command("sh", "-c", fmt.Sprintf("echo %s > %s", status, serverStatusFdPath))
|
||||||
err := cmd.Run()
|
err := cmd.Run()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
Loading…
Reference in New Issue