From 862388567fd8031c135d06362f710b6d5b06291d Mon Sep 17 00:00:00 2001
From: zhibing.pu <393733352@qq.com>
Date: 星期四, 15 八月 2024 10:26:35 +0800
Subject: [PATCH] 修改2.0 bug
---
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