From 037c9b7bbd43f6b893b528df693855b12942cb4e Mon Sep 17 00:00:00 2001 From: kercylan98 Date: Wed, 19 Jul 2023 17:25:12 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20onStop=20=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E7=AD=89=E5=BE=85=E9=80=BB=E8=BE=91=E6=89=A7=E8=A1=8C?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/event.go | 8 +++----- server/multiple.go | 9 +++++++++ server/server.go | 4 +++- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/server/event.go b/server/event.go index c906c2d..0999b24 100644 --- a/server/event.go +++ b/server/event.go @@ -45,11 +45,9 @@ func (slf *event) RegStopEvent(handle StopEventHandle) { } func (slf *event) OnStopEvent() { - PushSystemMessage(slf.Server, func() { - for _, handle := range slf.stopEventHandles { - handle(slf.Server) - } - }) + for _, handle := range slf.stopEventHandles { + handle(slf.Server) + } } // RegConsoleCommandEvent 控制台收到指令时将立即执行被注册的事件处理函数 diff --git a/server/multiple.go b/server/multiple.go index 06a96f9..a4449fb 100644 --- a/server/multiple.go +++ b/server/multiple.go @@ -72,6 +72,9 @@ func (slf *MultipleServer) Run() { signal.Notify(systemSignal, syscall.SIGHUP, syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT) select { case err := <-exceptionChannel: + for _, server := range slf.servers { + server.OnStopEvent() + } for len(slf.servers) > 0 { server := slf.servers[0] server.shutdown(err) @@ -79,6 +82,9 @@ func (slf *MultipleServer) Run() { } break case <-runtimeExceptionChannel: + for _, server := range slf.servers { + server.OnStopEvent() + } for len(slf.servers) > 0 { server := slf.servers[0] server.multipleRuntimeErrorChan = nil @@ -87,6 +93,9 @@ func (slf *MultipleServer) Run() { } break case <-systemSignal: + for _, server := range slf.servers { + server.OnStopEvent() + } for len(slf.servers) > 0 { server := slf.servers[0] server.multipleRuntimeErrorChan = nil diff --git a/server/server.go b/server/server.go index e89b0c2..210bc2e 100644 --- a/server/server.go +++ b/server/server.go @@ -392,7 +392,9 @@ func (slf *Server) Shutdown() { // shutdown 停止运行服务器 func (slf *Server) shutdown(err error) { - slf.OnStopEvent() + if slf.multiple == nil { + slf.OnStopEvent() + } defer func() { if slf.multipleRuntimeErrorChan != nil { slf.multipleRuntimeErrorChan <- err