以前的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(); } }