多线程解决导出excel性能问题
第一步:Controller 发起导出数据请求
@RequestMapping(value = "/subpolicy/hdevpayback/exportOtherExcelAll.json") public void exportOtherExcelAll(final HttpServletRequest request, final HttpServletResponse response, String statDate, String uuId) { if (!LockUtils.getLock("exportHardDevExcelAll", 180)) { try { response.setContentType("application/json;charset=UTF-8"); response.getWriter().write("其他用户正在导出,请稍后再试..."); response.getWriter().flush(); } catch (Exception e) { ExceptionUtils.throwBusinessException(getClass(), "返回消息异常", e); } return; } try { RedisUtil.setKey(uuId, "1", 120); String file = hardDevPayBackService.exportOtherHardExcelAll(statDate, Constants.EXPORT_MODE_LOCAL, request.getSession() .getServletContext().getRealPath("/")); FileUtils.exportFile(response, new File(file), "其他设备返款全量导出", "csv"); RecordLogManager.getInstance().commitOriginalLog(MyJedisCon.getRedisUser(request).getUserName(), "HDEVPAYBACK_MENU", "exportAll", "设备返款全部导出"); RedisUtil.deleteKey(uuId); } finally { LockUtils.unlock("exportHardDevExcelAll"); } }