以前的excel导入每次只能导入1万条数据,需求要求改为可以导入5万条数据,在别人以前的导入方法基础上只能这么改了,5万条数据拆分为5个1万条数据,开5个异步线程执行导入。
//批量导入评估关系的数量限制加大到5万行,只能在以前的基础上做小优化 int num = 10000; //切分成每次导入10000条数据 int number = userList.size() / num; int remainder = userList.size() % num; if (remainder > 0) { number = number + 1; } for (int i = 0; i < number; i++) { int fromIndex = num * i; int toIndex = num * i + num; if (i == number - 1) { //最后一次导入取最大条数 toIndex = userList.size(); } List<UserAppraiseImportResult> userLists = userList.subList(fromIndex, toIndex); batchUpdateVo.setAsyncFlag(true); examAsyncJobService.batchAppraiseImportUser(userLists, userReq, fileName, projectResp, excelHeaders, effectiveDataList, taskVo); try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } }