From 458bab6d883d06c62400d97ad51a45f03c6907bd Mon Sep 17 00:00:00 2001 From: qiufeng Date: Sat, 20 May 2023 12:15:15 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=B0=83=E5=BA=A6=E7=AD=96=E7=95=A5?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=97=A5=E5=BF=97=E7=B1=BB=E5=9E=8B=EF=BC=8C?= =?UTF-8?q?=E5=85=81=E8=AE=B8=E6=97=A5=E5=BF=97=E4=B8=8D=E5=AD=98=E5=82=A8?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E6=8F=90=E9=AB=98=E6=80=A7=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/scheduler/api/entity/JobLog.java | 2 ++ .../controller/JobLogController.java | 5 ++++ .../cn/com/mfish/scheduler/entity/Job.java | 2 ++ .../scheduler/execute/AbstractJobExecute.java | 24 ++++++++++++------- 4 files changed, 25 insertions(+), 8 deletions(-) diff --git a/mf-api/mf-scheduler-api/src/main/java/cn/com/mfish/common/scheduler/api/entity/JobLog.java b/mf-api/mf-scheduler-api/src/main/java/cn/com/mfish/common/scheduler/api/entity/JobLog.java index a3595b2a..ef48e136 100644 --- a/mf-api/mf-scheduler-api/src/main/java/cn/com/mfish/common/scheduler/api/entity/JobLog.java +++ b/mf-api/mf-scheduler-api/src/main/java/cn/com/mfish/common/scheduler/api/entity/JobLog.java @@ -55,6 +55,8 @@ public class JobLog extends BaseEntity { @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "结束时间") private Date endTime; + @ApiModelProperty(value = "日志类型(0入库日志 1文件日志)") + private Integer logType; @ApiModelProperty(value = "耗时(ms)") private Long costTime; @ApiModelProperty(value = "执行状态(0开始 1调度成功 2调度失败 3执行成功 4执行失败)") diff --git a/mf-scheduler/src/main/java/cn/com/mfish/scheduler/controller/JobLogController.java b/mf-scheduler/src/main/java/cn/com/mfish/scheduler/controller/JobLogController.java index 1ab07c63..3d5a9951 100644 --- a/mf-scheduler/src/main/java/cn/com/mfish/scheduler/controller/JobLogController.java +++ b/mf-scheduler/src/main/java/cn/com/mfish/scheduler/controller/JobLogController.java @@ -20,6 +20,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.text.MessageFormat; import java.util.Arrays; import java.util.Date; @@ -97,6 +98,10 @@ public class JobLogController { if (!jobLog.getStatus().equals(JobStatus.执行成功.getValue()) && !jobLog.getStatus().equals(JobStatus.执行失败.getValue())) { return Result.fail(false, "错误:传入状态不正确"); } + log.info(MessageFormat.format("任务:{0}-执行状态:{1}-任务ID:{2}-订阅ID:{3}", jobLog.getJobName(), jobLog.getStatus(), jobLog.getId(), jobLog.getSubscribeId())); + if (1 == jobLog.getLogType()) { + return Result.ok(true, "任务回调设置状态成功"); + } JobLog newLog = new JobLog().setId(jobLog.getId()).setStatus(jobLog.getStatus()); Date createTime = jobLog.getCreateTime(); if (createTime != null) { diff --git a/mf-scheduler/src/main/java/cn/com/mfish/scheduler/entity/Job.java b/mf-scheduler/src/main/java/cn/com/mfish/scheduler/entity/Job.java index 922ace3e..ce5a8398 100644 --- a/mf-scheduler/src/main/java/cn/com/mfish/scheduler/entity/Job.java +++ b/mf-scheduler/src/main/java/cn/com/mfish/scheduler/entity/Job.java @@ -52,6 +52,8 @@ public class Job extends BaseEntity { private String timeZone; @ApiModelProperty(value = "备注信息") private String remark; + @ApiModelProperty(value = "日志类型(0入库日志 1文件日志)") + private Integer logType; @ApiModelProperty(value = "订阅列表") @TableField(exist = false) private List subscribes; diff --git a/mf-scheduler/src/main/java/cn/com/mfish/scheduler/execute/AbstractJobExecute.java b/mf-scheduler/src/main/java/cn/com/mfish/scheduler/execute/AbstractJobExecute.java index da2cb2ef..014f1805 100644 --- a/mf-scheduler/src/main/java/cn/com/mfish/scheduler/execute/AbstractJobExecute.java +++ b/mf-scheduler/src/main/java/cn/com/mfish/scheduler/execute/AbstractJobExecute.java @@ -2,12 +2,12 @@ package cn.com.mfish.scheduler.execute; import cn.com.mfish.common.core.utils.SpringBeanFactory; import cn.com.mfish.common.core.utils.Utils; +import cn.com.mfish.common.scheduler.api.entity.JobLog; +import cn.com.mfish.common.scheduler.config.enums.JobStatus; import cn.com.mfish.common.scheduler.config.utils.InvokeUtils; import cn.com.mfish.scheduler.common.JobUtils; import cn.com.mfish.scheduler.entity.Job; -import cn.com.mfish.common.scheduler.api.entity.JobLog; import cn.com.mfish.scheduler.entity.JobSubscribe; -import cn.com.mfish.common.scheduler.config.enums.JobStatus; import cn.com.mfish.scheduler.enums.JobType; import cn.com.mfish.scheduler.invoke.BaseInvoke; import cn.com.mfish.scheduler.service.JobLogService; @@ -64,7 +64,7 @@ public abstract class AbstractJobExecute extends QuartzJobBean { execute(JobType.getJob(job.getJobType()), threadLocal.get(), list); success = true; } catch (Exception ex) { - log.error(MessageFormat.format("任务ID:{0}执行异常,任务ID:{1}:", job.getJobName(), job.getId()), ex); + log.error(MessageFormat.format("任务:{0}-执行状态:异常-任务ID:{1}-订阅ID:{2}", job.getJobName(), job.getId(), subscribeId), ex); success = false; error = ex.getMessage(); } finally { @@ -88,8 +88,14 @@ public abstract class AbstractJobExecute extends QuartzJobBean { .setClassName(job.getClassName()) .setMethodName(job.getMethodName()) .setParams(job.getParams()) - .setStatus(JobStatus.开始.getValue()); + .setStatus(JobStatus.开始.getValue()) + .setLogType(job.getLogType()); jobLog.setCreateBy(OPERATOR).setCreateTime(new Date()); + log.info(MessageFormat.format("任务:{0}-执行状态:{1}-任务ID:{2}-订阅ID:{3}", jobLog.getJobName(), jobLog.getStatus(), jobLog.getId(), jobLog.getSubscribeId())); + threadLocal.set(jobLog); + if (1 == jobLog.getLogType()) { + return; + } JobSubscribeService jobSubscribeService = SpringBeanFactory.getBean(JobSubscribeService.class); JobSubscribe jobSubscribe = jobSubscribeService.getById(subscribeId); if (jobSubscribe != null) { @@ -97,7 +103,6 @@ public abstract class AbstractJobExecute extends QuartzJobBean { jobLog.setStartTime(jobSubscribe.getStartTime()); jobLog.setEndTime(jobSubscribe.getEndTime()); } - threadLocal.set(jobLog); JobLogService jobLogService = SpringBeanFactory.getBean(JobLogService.class); if (jobLogService.save(jobLog)) { log.info(MessageFormat.format("任务:{0}调度成功,任务ID:{1}", job.getJobName(), job.getId())); @@ -112,16 +117,19 @@ public abstract class AbstractJobExecute extends QuartzJobBean { * @param success 任务是否成功 * @param remark 错误信息 */ - public static void executeCallBack(boolean success, String remark) { + private static void executeCallBack(boolean success, String remark) { JobLog jobLog = threadLocal.get(); threadLocal.remove(); if (jobLog == null) { log.error("错误:未获取到任务日志"); return; } - JobLogService jobLogService = SpringBeanFactory.getBean(JobLogService.class); JobStatus jobStatus = success ? JobStatus.调度成功 : JobStatus.调度失败; - log.info(MessageFormat.format("任务{0}执行{1},任务ID:{2}", jobLog.getJobName(), jobStatus, jobLog.getId())); + log.info(MessageFormat.format("任务:{0}-执行状态:{1}-任务ID:{2}-订阅ID:{3}", jobLog.getJobName(), jobStatus, jobLog.getId(), jobLog.getSubscribeId())); + if (1 == jobLog.getLogType()) { + return; + } + JobLogService jobLogService = SpringBeanFactory.getBean(JobLogService.class); //数据库设置长度1000,截取999位 if (remark != null && remark.length() >= 1000) { remark = remark.substring(0, 999);