add - 添加耗时日志打印

This commit is contained in:
wangli 2024-02-27 11:10:45 +08:00
parent 207d30b45c
commit 557c71f421
3 changed files with 31 additions and 8 deletions

View File

@ -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:
}

View File

@ -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());
}

View File

@ -38,14 +38,6 @@ public class RequestHeaderContextInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
Enumeration<String> 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<String> 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");
}
}