From cf46888b6aaf0605f33e8b7b4aab7610cdf1b949 Mon Sep 17 00:00:00 2001 From: mountain Date: Thu, 29 Jun 2023 10:19:57 +0900 Subject: [PATCH] =?UTF-8?q?houstonClient=20=EC=A2=85=EB=A3=8C=EC=8B=9C=20h?= =?UTF-8?q?oustonServer=EB=8F=84=20=EC=A2=85=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/http_handler.go | 4 ---- server/server.go | 29 +++++++++++++++++++++-------- 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/server/http_handler.go b/server/http_handler.go index 23dacc7..142a8a0 100644 --- a/server/http_handler.go +++ b/server/http_handler.go @@ -15,10 +15,6 @@ import ( "repositories.action2quare.com/ayo/gocommon/logger" ) -const ( - defaultMaxMemory = 32 << 10 // 32 KB -) - type HoustonServerWithHandler interface { HoustonServer RegisterHandlers(serveMux *http.ServeMux, prefix string) error diff --git a/server/server.go b/server/server.go index 0c92a0c..8a3c07e 100644 --- a/server/server.go +++ b/server/server.go @@ -5,6 +5,7 @@ import ( "fmt" "net" "os" + "sync/atomic" "time" "repositories.action2quare.com/ayo/gocommon/logger" @@ -176,23 +177,35 @@ func (hs *houstonServer) Start() error { return err } + closeCount := int32(0) + var hc client.HoustonClient if loadServerConfig().RunAsClient { + hc, err = client.NewClient() + if err != nil { + return err + } + go func() { time.Sleep(time.Second) - hc, err := client.NewClient() - if err != nil { - logger.Fatal(err) - return - } hc.Start() + logger.Println("houstonClient is finished") + if atomic.AddInt32(&closeCount, 1) == 1 { + logger.Println("try stop houstonServer") + hs.Stop() + } }() } - if err := hs.rpcServer.Serve(lis); err != nil { - return err + err = hs.rpcServer.Serve(lis) + if atomic.AddInt32(&closeCount, 1) == 1 { + if hc != nil { + logger.Println("try stop houstonClient") + hc.Shutdown() + } } + logger.Println("houstonServer is finished") - return nil + return err } func (hs *houstonServer) Stop() {