From 79d97c39f1d118824f91467feb9f4a55717fd0c0 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期五, 26 七月 2024 14:03:41 +0800 Subject: [PATCH] Merge branch '2.0' of http://120.76.84.145:10101/gitblit/r/java/IgoTravel into 2.0 --- DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/quartz/model/QuartzJob.java | 66 ++++++++++++-------------------- 1 files changed, 25 insertions(+), 41 deletions(-) diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/quartz/model/QuartzJob.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/quartz/model/QuartzJob.java index b43f938..9ec7b7a 100644 --- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/quartz/model/QuartzJob.java +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/quartz/model/QuartzJob.java @@ -1,13 +1,16 @@ package com.stylefeng.guns.modular.system.util.quartz.model; +import com.alibaba.fastjson.JSON; import com.stylefeng.guns.core.util.ToolUtil; +import com.stylefeng.guns.modular.system.util.SpringUtils; import lombok.Data; import lombok.Getter; import lombok.extern.slf4j.Slf4j; -import org.quartz.Job; -import org.quartz.JobDataMap; -import org.quartz.JobExecutionContext; -import org.quartz.JobExecutionException; +import org.quartz.*; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.Map; /** * quartz任务类 @@ -20,17 +23,14 @@ /** * 任务名称 */ - @Getter private String name; /** * 任务分组 */ - @Getter private String group; /** * 自定义参数 */ - @Getter private JobDataMap jobDataMap; @@ -38,9 +38,7 @@ * 构建QuartzJob对象 * @return */ - public QuartzJob buildQuartzJob() { - return buildQuartzJob(QuartzEnum.JOB_NAME.getValue()); - } + public abstract QuartzJob buildQuartzJob(); @@ -49,9 +47,7 @@ * @param name 任务名称 * @return */ - public QuartzJob buildQuartzJob(String name) { - return buildQuartzJob(name, QuartzEnum.DEFAULT_GROUP.getValue()); - } + public abstract QuartzJob buildQuartzJob(String name); @@ -61,9 +57,7 @@ * @param group 任务分组名称 * @return */ - public QuartzJob buildQuartzJob(String name, String group) { - return buildQuartzJob(name, QuartzEnum.DEFAULT_GROUP.getValue(), null); - } + public abstract QuartzJob buildQuartzJob(String name, String group); /** * 构建QuartzJob对象 @@ -72,20 +66,7 @@ * @param jobDataMap 自定义参数 * @return */ - public QuartzJob buildQuartzJob(String name, String group, JobDataMap jobDataMap) { - if(ToolUtil.isNotEmpty(name)){ - this.name = name; - }else{ - this.name = QuartzEnum.JOB_NAME.getValue(); - } - if(ToolUtil.isNotEmpty(group)){ - this.group = group; - }else{ - this.group = QuartzEnum.DEFAULT_GROUP.getValue(); - } - this.jobDataMap = jobDataMap; - return this; - } + public abstract QuartzJob buildQuartzJob(String name, String group, JobDataMap jobDataMap); /** * 需要执行的任务的业务逻辑方法 @@ -93,16 +74,19 @@ */ public abstract void run(JobExecutionContext jobExecutionContext); - /** - * 执行器执行任务调用的方式 - * @param jobExecutionContext 定时任务上下文对象 - * @throws JobExecutionException - */ - @Override - public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { - String name = jobExecutionContext.getJobDetail().getKey().getName(); - log.info(name + " scheduled task start!"); - run(jobExecutionContext); - } + @Override + public void execute(JobExecutionContext jobExecutionContext){ + JobDetail jobDetail = jobExecutionContext.getJobDetail(); + String name = jobDetail.getKey().getName(); + log.info(name + " scheduled task start!\nJobDataMap:{}", JSON.toJSONString(jobDetail.getJobDataMap())); + try { + Class jobClass = jobDetail.getJobClass(); + Method run = jobClass.getMethod("run", JobExecutionContext.class); + Object o = SpringUtils.getBean(jobClass); + Object invoke = run.invoke(o, jobExecutionContext); + } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) { + e.printStackTrace(); + } + } } -- Gitblit v1.7.1