Merge branch 'develop'
This commit is contained in:
commit
7c5edb8bef
|
@ -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 控制台收到指令时将立即执行被注册的事件处理函数
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue