|
@@ -150,7 +150,7 @@ public class BatchImportExamStudentTask implements TaskService {
|
|
|
// 开始执行导入
|
|
|
long startTime = System.currentTimeMillis();
|
|
|
AtomicInteger successCount = new AtomicInteger(), failCount = new AtomicInteger();
|
|
|
- if (total <= 1) {
|
|
|
+ if (total <= 1000) {
|
|
|
this.singleRun(loginUser, dataList, successCount, failCount);
|
|
|
} else {
|
|
|
final int batchSize = 20;// 分批数量
|
|
@@ -177,7 +177,9 @@ public class BatchImportExamStudentTask implements TaskService {
|
|
|
}
|
|
|
|
|
|
private void singleRun(User loginUser, List<ExamStudentInfo> batchList, AtomicInteger successCount, AtomicInteger failCount) {
|
|
|
- for (ExamStudentInfo examStudent : batchList) {
|
|
|
+ long startTime = System.currentTimeMillis();
|
|
|
+ for (int n = 0; n < batchList.size(); n++) {
|
|
|
+ ExamStudentInfo examStudent = batchList.get(n);
|
|
|
try {
|
|
|
this.saveExamStudent(loginUser, examStudent);
|
|
|
successCount.incrementAndGet();
|
|
@@ -185,6 +187,14 @@ public class BatchImportExamStudentTask implements TaskService {
|
|
|
failCount.incrementAndGet();
|
|
|
log.error("学号:{} 执行失败!{}", examStudent.getStudentCode(), e.getMessage());
|
|
|
}
|
|
|
+
|
|
|
+ long cost = Math.max((System.currentTimeMillis() - startTime) / 1000L, 1);
|
|
|
+ int runCount = n + 1;
|
|
|
+ if (runCount % 20 == 0) {
|
|
|
+ log.info("总数:{} 成功数:{} 失败数:{} 已执行:{}条 已耗时:{}秒 平均每秒{}条 进度:{}%"
|
|
|
+ , batchList.size(), successCount.get(), failCount.get(), runCount, cost
|
|
|
+ , runCount / cost, runCount * 100f / batchList.size());
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|