From 802187abc4095c065c1239a196d86c907e2dac86 Mon Sep 17 00:00:00 2001 From: ansionfor <77931774@qq.com> Date: Wed, 7 Apr 2021 16:06:37 +0800 Subject: [PATCH 1/2] add graceful reload timeout --- net/ghttp/ghttp_server.go | 2 +- net/ghttp/ghttp_server_config.go | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/net/ghttp/ghttp_server.go b/net/ghttp/ghttp_server.go index af9edfd5c..e0c389801 100644 --- a/net/ghttp/ghttp_server.go +++ b/net/ghttp/ghttp_server.go @@ -193,7 +193,7 @@ func (s *Server) Start() error { // If this is a child process, it then notifies its parent exit. if gproc.IsChild() { - gtimer.SetTimeout(2*time.Second, func() { + gtimer.SetTimeout(time.Duration(s.config.GracefulTimeout) * time.Second, func() { if err := gproc.Send(gproc.PPid(), []byte("exit"), adminGProcCommGroup); err != nil { //glog.Error("server error in process communication:", err) } diff --git a/net/ghttp/ghttp_server_config.go b/net/ghttp/ghttp_server_config.go index 760b17b43..7a59f7726 100644 --- a/net/ghttp/ghttp_server_config.go +++ b/net/ghttp/ghttp_server_config.go @@ -218,6 +218,9 @@ type ServerConfig struct { // Graceful enables graceful reload feature for all servers of the process. Graceful bool `json:"graceful"` + + // GracefulTimeout set the maximum survival time (seconds) of the parent process. + GracefulTimeout uint8 `json:"gracefulTimeout"` } // Deprecated. Use NewConfig instead. @@ -265,6 +268,7 @@ func NewConfig() ServerConfig { FormParsingMemory: 1024 * 1024, // 1MB Rewrites: make(map[string]string), Graceful: false, + GracefulTimeout: 2, // seconds } } From 90f4bba8fd13e40fc504cd8aafa6572cc031b5e9 Mon Sep 17 00:00:00 2001 From: wujia Date: Wed, 7 Apr 2021 20:52:38 +0800 Subject: [PATCH 2/2] =?UTF-8?q?gofmt=E6=A0=BC=E5=BC=8F=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- net/ghttp/ghttp_server.go | 2 +- net/ghttp/ghttp_server_config.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/net/ghttp/ghttp_server.go b/net/ghttp/ghttp_server.go index e0c389801..68092e4e4 100644 --- a/net/ghttp/ghttp_server.go +++ b/net/ghttp/ghttp_server.go @@ -193,7 +193,7 @@ func (s *Server) Start() error { // If this is a child process, it then notifies its parent exit. if gproc.IsChild() { - gtimer.SetTimeout(time.Duration(s.config.GracefulTimeout) * time.Second, func() { + gtimer.SetTimeout(time.Duration(s.config.GracefulTimeout)*time.Second, func() { if err := gproc.Send(gproc.PPid(), []byte("exit"), adminGProcCommGroup); err != nil { //glog.Error("server error in process communication:", err) } diff --git a/net/ghttp/ghttp_server_config.go b/net/ghttp/ghttp_server_config.go index 7a59f7726..e7b19c926 100644 --- a/net/ghttp/ghttp_server_config.go +++ b/net/ghttp/ghttp_server_config.go @@ -268,7 +268,7 @@ func NewConfig() ServerConfig { FormParsingMemory: 1024 * 1024, // 1MB Rewrites: make(map[string]string), Graceful: false, - GracefulTimeout: 2, // seconds + GracefulTimeout: 2, // seconds } }