From 9081ed177ace02c2946ea4664e06299c48882c3b Mon Sep 17 00:00:00 2001 From: wangbing Date: Thu, 26 Nov 2020 17:00:28 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8C=89=E9=92=AE=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/frame/schedule/RunTask.java | 7 +++--- .../java/frame/schedule/Scheduler.java | 4 ++++ .../module/wsys/mgr/TaskSqlManagerImpl.java | 22 ++++++++++++++----- .../templates/screen/module/wsys/logerr.ftl | 4 ++-- 4 files changed, 27 insertions(+), 10 deletions(-) diff --git a/src/main/resources/modules/SpringBoot/java/frame/schedule/RunTask.java b/src/main/resources/modules/SpringBoot/java/frame/schedule/RunTask.java index 5325d095..dbea4e9d 100644 --- a/src/main/resources/modules/SpringBoot/java/frame/schedule/RunTask.java +++ b/src/main/resources/modules/SpringBoot/java/frame/schedule/RunTask.java @@ -49,19 +49,20 @@ public abstract class RunTask implements Runnable { exception(e); // 保证异常信息不会超过字段长度 String trace = LogUtil.getTrace(e); - if (trace.length() > 500) { - trace = trace.substring(0, 500); + if (trace.length() > 496) { + trace = trace.substring(0, 496); } request.setExecState("0"); request.setExecResult(String.format("失败[%s]", trace)); request.setEndTime(new Date()); } try { - + // 任务执行结果 request.setExecTime((int) (request.getEndTime().getTime() - request.getStartTime().getTime())); LogtaskManager logtaskManager = LocalData.getBean(LogtaskManager.class); assert logtaskManager != null; logtaskManager.create(request, LocalData.getSysToken()); + // todo 考虑是否将任务的异常归为故障 } catch (Exception ignored) { } diff --git a/src/main/resources/modules/SpringBoot/java/frame/schedule/Scheduler.java b/src/main/resources/modules/SpringBoot/java/frame/schedule/Scheduler.java index bc9bde92..b5e4e643 100644 --- a/src/main/resources/modules/SpringBoot/java/frame/schedule/Scheduler.java +++ b/src/main/resources/modules/SpringBoot/java/frame/schedule/Scheduler.java @@ -81,6 +81,10 @@ public class Scheduler extends ThreadPoolTaskScheduler implements ErrorHandler { return result; } + /** + * 【此方法为异常最终处理】通常是线程执行任务时未捕捉的的异常。 + * @param throwable + */ @Override public void handleError(Throwable throwable) { String title = throwable.getMessage(); diff --git a/src/main/resources/modules/SpringBoot/java/module/wsys/mgr/TaskSqlManagerImpl.java b/src/main/resources/modules/SpringBoot/java/module/wsys/mgr/TaskSqlManagerImpl.java index 5c6e5f85..95d3875d 100644 --- a/src/main/resources/modules/SpringBoot/java/module/wsys/mgr/TaskSqlManagerImpl.java +++ b/src/main/resources/modules/SpringBoot/java/module/wsys/mgr/TaskSqlManagerImpl.java @@ -45,6 +45,8 @@ public class TaskSqlManagerImpl implements TaskSqlManager { @Autowired private TaskSqlMapper taskSqlMapper; + @Autowired + private Scheduler scheduler; /** * 插入 @@ -114,7 +116,6 @@ public class TaskSqlManagerImpl implements TaskSqlManager { return response; } response.setResult(result); - Scheduler scheduler = LocalData.getBean(Scheduler.class); scheduler.remove(String.valueOf(request.getId())); return response; @@ -168,7 +169,6 @@ public class TaskSqlManagerImpl implements TaskSqlManager { if (request.getValid()) { createOrRepeat(MapperUtil.map(request, TaskSql.class)); } else { - Scheduler scheduler = LocalData.getBean(Scheduler.class); scheduler.remove(String.valueOf(request.getId())); } @@ -214,7 +214,6 @@ public class TaskSqlManagerImpl implements TaskSqlManager { public boolean createOrRepeat(TaskSql taskSql) { try { if ("Cron".equals(taskSql.getTaskType())) { - Scheduler scheduler = LocalData.getBean(Scheduler.class); scheduler.createOrRepeat(new RunCronTask() { @Override @@ -232,6 +231,11 @@ public class TaskSqlManagerImpl implements TaskSqlManager { return String.valueOf(taskSql.getId()); } + @Override + public String taskNote() { + return taskSql.getTaskNote(); + } + @Override protected void task() { try { @@ -243,7 +247,6 @@ public class TaskSqlManagerImpl implements TaskSqlManager { }); } if ("DelayRepeat".equals(taskSql.getTaskType())) { - Scheduler scheduler = LocalData.getBean(Scheduler.class); scheduler.createOrRepeat(new RunDelayRepeatTask() { @Override public Duration interval() { @@ -261,6 +264,11 @@ public class TaskSqlManagerImpl implements TaskSqlManager { return String.valueOf(taskSql.getId()); } + @Override + public String taskNote() { + return taskSql.getTaskNote(); + } + @Override protected void task() { try { @@ -272,7 +280,6 @@ public class TaskSqlManagerImpl implements TaskSqlManager { }); } if ("FixRepeat".equals(taskSql.getTaskType())) { - Scheduler scheduler = LocalData.getBean(Scheduler.class); scheduler.createOrRepeat(new RunFixRepeatTask() { @Override public Duration interval() { @@ -290,6 +297,11 @@ public class TaskSqlManagerImpl implements TaskSqlManager { return String.valueOf(taskSql.getId()); } + @Override + public String taskNote() { + return taskSql.getTaskNote(); + } + @Override protected void task() { try { diff --git a/src/main/resources/modules/SpringBoot/resources/templates/screen/module/wsys/logerr.ftl b/src/main/resources/modules/SpringBoot/resources/templates/screen/module/wsys/logerr.ftl index 42f83730..ad449700 100644 --- a/src/main/resources/modules/SpringBoot/resources/templates/screen/module/wsys/logerr.ftl +++ b/src/main/resources/modules/SpringBoot/resources/templates/screen/module/wsys/logerr.ftl @@ -119,8 +119,8 @@ label="操作">