From 557c71f421b203d7fe3720d85c85876508388c04 Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Tue, 27 Feb 2024 11:10:45 +0800 Subject: [PATCH] =?UTF-8?q?add=20-=20=E6=B7=BB=E5=8A=A0=E8=80=97=E6=97=B6?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E6=89=93=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../listener/EngineNoticeEventListener.java | 14 +++++++++++++ .../listener/EngineTaskEventListener.java | 4 ++++ .../RequestHeaderContextInterceptor.java | 21 ++++++++++++------- 3 files changed, 31 insertions(+), 8 deletions(-) diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/EngineNoticeEventListener.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/EngineNoticeEventListener.java index 667c3887d..0fe67c65f 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/EngineNoticeEventListener.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/EngineNoticeEventListener.java @@ -9,6 +9,7 @@ import org.flowable.common.engine.api.delegate.event.AbstractFlowableEventListen import org.flowable.common.engine.api.delegate.event.FlowableEvent; import org.springframework.beans.factory.ObjectProvider; import org.springframework.stereotype.Component; +import org.springframework.util.StopWatch; import javax.annotation.Resource; import java.util.ArrayList; @@ -43,6 +44,7 @@ public class EngineNoticeEventListener extends AbstractFlowableEventListener { @Override public void onEvent(FlowableEvent flowableEvent) { + StopWatch stopWatch = new StopWatch("EngineNoticeEventListener"); if (flowableEvent instanceof MessagePushEvent) { MessagePushEvent event = (MessagePushEvent) flowableEvent; @@ -51,16 +53,28 @@ public class EngineNoticeEventListener extends AbstractFlowableEventListener { if (NOTICE_PUSH_EVENTS.contains(pushEventType)) { switch (pushEventType) { case NOTICE: + stopWatch.start("PUSH-NOTICE Event Execution Time"); getOrderedListeners().forEach(i -> i.onNotice(event)); + stopWatch.stop(); + log.info("PUSH-NOTICE StopWatch : running time = " + stopWatch.getTotalTimeSeconds() + " 's"); break; case PENDING_PUSH: + stopWatch.start("PUSH-PENDING Event Execution Time"); getOrderedListeners().forEach(i -> i.onPendingPush(event)); + stopWatch.stop(); + log.info("PUSH-PENDING StopWatch : running time = " + stopWatch.getTotalTimeSeconds() + " 's"); break; case PENDING_COMPLETE: + stopWatch.start("PUSH-PENDING-COMPLETE Event Execution Time"); getOrderedListeners().forEach(i -> i.onPendingComplete(event)); + stopWatch.stop(); + log.info("PUSH-PENDING-COMPLETE StopWatch : running time = " + stopWatch.getTotalTimeSeconds() + " 's"); break; case SMS: + stopWatch.start("SMS Event Execution Time"); getOrderedListeners().forEach(i -> i.onSms(event)); + stopWatch.stop(); + log.info("SMS StopWatch : running time = " + stopWatch.getTotalTimeSeconds() + " 's"); break; default: } diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/EngineTaskEventListener.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/EngineTaskEventListener.java index 92d607cbf..0377705fd 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/EngineTaskEventListener.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/EngineTaskEventListener.java @@ -6,6 +6,7 @@ import org.flowable.engine.delegate.TaskListener; import org.flowable.task.service.delegate.DelegateTask; import org.springframework.beans.factory.ObjectProvider; import org.springframework.stereotype.Component; +import org.springframework.util.StopWatch; import javax.annotation.Resource; import java.util.ArrayList; @@ -30,6 +31,8 @@ public class EngineTaskEventListener implements TaskListener { log.info("Task Listener, Event: ALL , TaskId: {}, EventName: {}", delegateTask.getId(), delegateTask.getEventName()); + StopWatch stopWatch = new StopWatch("EngineTaskEventListener"); + stopWatch.start("All Task Event Execution Time"); getOrderedListeners().forEach(i -> { if (Objects.isNull(delegateTask.getEventName())) { // FIXME 这里不知道为什么, 从 1.2.1 版本出现了NPE, 通过堆栈未找到根因. 有空再跟进 @@ -53,6 +56,7 @@ public class EngineTaskEventListener implements TaskListener { default: } }); + log.info(stopWatch.shortSummary()); } diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/common/interceptor/RequestHeaderContextInterceptor.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/common/interceptor/RequestHeaderContextInterceptor.java index 2b68270ad..d5b8158fd 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/common/interceptor/RequestHeaderContextInterceptor.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/common/interceptor/RequestHeaderContextInterceptor.java @@ -38,14 +38,6 @@ public class RequestHeaderContextInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { - Enumeration headerNames = request.getHeaderNames(); - log.info("parse header start, current uri: {}", request.getRequestURI()); - while (headerNames.hasMoreElements()) { - String headerName = headerNames.nextElement(); - String headerValue = request.getHeader(headerName); - log.info("headerName: {}, headerValue: {}", headerName, headerValue); - } - log.info("parse header end"); if (Objects.equals(HEADER_HTTP_CLIENT_VALUE, request.getHeader(HEADER_HTTP_CLIENT))) { String headerClientVersion = request.getHeader(HEADER_API_VERSION); DefaultArtifactVersion clientVersion = new DefaultArtifactVersion(headerClientVersion); @@ -57,6 +49,7 @@ public class RequestHeaderContextInterceptor implements HandlerInterceptor { return true; } else { log.info("request uri 1 : {}", request.getRequestURI()); + printHeader(request); log.error(CLIENT_VERSION_SUPPORT.getMessage(), serviceVersion, headerClientVersion); throw new WorkflowEngineException(CLIENT_VERSION_SUPPORT, serviceVersion, headerClientVersion); } @@ -65,6 +58,7 @@ public class RequestHeaderContextInterceptor implements HandlerInterceptor { if (!request.getRequestURI().contains("/web/") && !request.getRequestURI().contains("checkDeath") && !StringUtils.hasText(request.getHeader(HEADER_HTTP_CLIENT))) { String serverName = request.getHeader(HEADER_SERVER_NAME); + printHeader(request); log.error(MICRO_SERVER_NEED_REBUILD.getMessage(), serverName); throw new WorkflowEngineException(MICRO_SERVER_NEED_REBUILD, serverName); } @@ -97,4 +91,15 @@ public class RequestHeaderContextInterceptor implements HandlerInterceptor { } } + private void printHeader(HttpServletRequest request) { + Enumeration headerNames = request.getHeaderNames(); + log.info("parse header start, current uri: {}", request.getRequestURI()); + while (headerNames.hasMoreElements()) { + String headerName = headerNames.nextElement(); + String headerValue = request.getHeader(headerName); + log.info("headerName: {}, headerValue: {}", headerName, headerValue); + } + log.info("parse header end"); + } + }