diff --git a/muyu-quest-server/src/main/java/com/muyu/quest/manager/TaskManager.java b/muyu-quest-server/src/main/java/com/muyu/quest/manager/TaskManager.java index 3891c28..a99ef83 100644 --- a/muyu-quest-server/src/main/java/com/muyu/quest/manager/TaskManager.java +++ b/muyu-quest-server/src/main/java/com/muyu/quest/manager/TaskManager.java @@ -104,12 +104,22 @@ public final class TaskManager { workThrads[i].stopWorker(); workThrads[i] = null; } - endTime = System.currentTimeMillis(); - log.info("线程池关闭,工作时长:{}ms", endTime - startTime); taskManager=null; taskQueue.clear();// 清空任务队列 } + // 任务完成后,统计线程池的运行情况 + public void closed() { + while (!getIsRunning()) {// 如果还有任务没执行完成,就先睡会吧 + try { + sleep(500); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + log.info("任务完成,线程状态: {}",this.toString()); + } + // 返回工作线程的个数 public int getWorkThreadNumber() { return workerNum; @@ -136,8 +146,10 @@ public final class TaskManager { // 覆盖toString方法,返回线程池信息:工作线程个数和已完成任务个数 @Override public String toString() { + endTime = System.currentTimeMillis(); return "工作任务数:" + workerNum + ",已完成任务数:" - + finishedTask + ",等待任务数:" + getWaitTasknumber(); + + finishedTask + ",等待任务数:" + getWaitTasknumber() + + "线程池作时长:"+(endTime - startTime)+"ms"; } /** diff --git a/muyu-quest-server/src/main/java/com/muyu/quest/service/impl/TaskServiceImpl.java b/muyu-quest-server/src/main/java/com/muyu/quest/service/impl/TaskServiceImpl.java index 87b2e75..c79737c 100644 --- a/muyu-quest-server/src/main/java/com/muyu/quest/service/impl/TaskServiceImpl.java +++ b/muyu-quest-server/src/main/java/com/muyu/quest/service/impl/TaskServiceImpl.java @@ -197,7 +197,8 @@ public class TaskServiceImpl extends ServiceImpl taskExportService.updateByExportCode(entity); }); } - taskManager.destroy(); + taskManager.closed(); + taskManager = null; return "执行成功"; }