diff --git a/server/message.go b/server/message.go index e296cb4..873f934 100644 --- a/server/message.go +++ b/server/message.go @@ -24,6 +24,8 @@ const ( var messageNames = map[MessageType]string{ MessageTypePacket: "MessageTypePacket", MessageTypeError: "MessageTypeError", + MessageTypeCross: "MessageTypeCross", + MessageTypeTicker: "MessageTypeTicker", } const ( diff --git a/server/server.go b/server/server.go index d917fa6..25fef7f 100644 --- a/server/server.go +++ b/server/server.go @@ -413,13 +413,19 @@ func (slf *Server) PushCrossMessage(crossName string, serverId int64, packet []b // dispatchMessage 消息分发 func (slf *Server) dispatchMessage(msg *message) { + present := time.Now() defer func() { - if !slf.isShutdown.Load() { - slf.messagePool.Release(msg) - } if err := recover(); err != nil { log.Error("Server", zap.String("MessageType", messageNames[msg.t]), zap.Any("MessageAttrs", msg.attrs), zap.Any("error", err)) } + + if cost := time.Since(present); cost > time.Millisecond*100 { + log.Warn("Server", zap.String("MessageType", messageNames[msg.t]), zap.String("LowExecCost", cost.String()), zap.Any("MessageAttrs", msg.attrs)) + } + + if !slf.isShutdown.Load() { + slf.messagePool.Release(msg) + } }() switch msg.t { case MessageTypePacket: