yezi_liuwei 2020-03-30 11:40 采纳率: 0%
浏览 647

springmvc 拦截器到控制器耗时越来越长

刚开始preHandle返回true后,pushStatus能够在几ms内响应,但几天之后,响应时间能够慢到几秒种,同一controller内的其他接口都是几ms的响应,这是什么问题?有什么解决的方向?

背景:
pushStatus是一个接收状态的接口,大概有几十台机器会往这个接口发送状态数据,数据量(JSONArray)几条到几百条不等,发送频率大概是每分钟几次,也就是说每秒钟pushStatus接口都会接收到数据,而service处理时间一般在几百毫秒左右,但service的处理时间不会随着时间变化。

SpringMVC4.0.0

拦截器:
public class LoginInterceptor implements HandlerInterceptor {

public boolean preHandle(HttpServletRequest request,
                         HttpServletResponse response, Object handler) throws Exception {

.....
logger.info(.....);
return true;
}

}

控制器:
@Controller
@RequestMapping("/deviceStatus")
public class DeviceStatusController {

@ResponseBody
@RequestMapping(value = "push", method = RequestMethod.POST)
public String pushStatus(HttpServletRequest request, @RequestBody JSONArray ja) throws Exception {
            logger.info(.....);
            xxx.service();
    }

}

  • 写回答

1条回答 默认 最新

  • 死神8小爱 2020-03-30 12:17
    关注

    据说logger.info有synchronized锁,并发记录可能会影响性能,可以先注了测测

    评论

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置