最近遇到一个问题,在仓库进行作业时,手持端经常出现卡顿情况,为了确认是否与系统相关,在所有接口上加上时间监控,查看接口调用时间。
@Aspect
@Component
public class InvokeTimeAdvice {
private static final Integer TIMEOUT = 0;
protected Logger logger = LoggerFactory.getLogger(InvokeTimeAdvice.class);
@Pointcut("execution(public * com.ypsx.wms.web.controller.*.*.*(..))")
public void pointCut() {
}
@Around(value = "pointCut()")
public Object logInvokeTime(ProceedingJoinPoint joinPoint) throws Throwable {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
long start = System.currentTimeMillis();
try {
return joinPoint.proceed();
} finally {
long end = System.currentTimeMillis();
long duration = end - start;
if (duration >= TIMEOUT) {
String methodName = joinPoint.getSignature().getName();
logger.info(开始时间:" + start + ",结束时间:" + end + ",方法执行时长" + duration + "ms,方法名为" + methodName);
}
}
}
}版权声明:本文为u010344437原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。