From 4c4d8653ab9910f84629c9a3ba1ed39af4f07cb1 Mon Sep 17 00:00:00 2001
From: shiyj <1098226878@qq.com>
Date: 星期五, 26 七月 2019 17:40:29 +0800
Subject: [PATCH] 针对quzrtz2.3.0版本做了大的改动 jobdatail等实现方式由原来的new改为了jar包提供的工具类产生
---
JobService/src/main/java/com/java110/job/Api/PrvncFtpToFileSystemConfigAction.java | 43 +++++++++++++++++++++++++------------------
1 files changed, 25 insertions(+), 18 deletions(-)
diff --git a/JobService/src/main/java/com/java110/job/Api/PrvncFtpToFileSystemConfigAction.java b/JobService/src/main/java/com/java110/job/Api/PrvncFtpToFileSystemConfigAction.java
index c5cab16..70c9744 100644
--- a/JobService/src/main/java/com/java110/job/Api/PrvncFtpToFileSystemConfigAction.java
+++ b/JobService/src/main/java/com/java110/job/Api/PrvncFtpToFileSystemConfigAction.java
@@ -8,9 +8,8 @@
import com.java110.job.task.PrvncFtpToFileSystemJob;
import org.apache.commons.validator.GenericValidator;
import org.apache.commons.validator.util.ValidatorUtils;
-import org.quartz.CronTrigger;
-import org.quartz.JobDetail;
-import org.quartz.Scheduler;
+
+import org.quartz.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -52,6 +51,9 @@
private static int pageSize = 20;
public JSONObject resultMsg;
+
+ @Autowired
+ private Scheduler scheduler;
/**
*
@@ -485,8 +487,6 @@
List<Map> doFtpItems = getPrvncFtpFileDAO().queryFtpItemsByTaskIds(info);
- // 鑾峰彇Spring璋冨害鍣�
- Scheduler scheduler = (Scheduler) SpringBeanInvoker.getBean("schedulerFactoryBean");
int linstenCount = 0;
int updateTaskStateFailCount = 0;
try {
@@ -501,28 +501,31 @@
// 鑾峰彇瀹氭椂鏃堕棿
String cronExpression = doFtpItem.get("TASKCRON") == null ? defaultCronExpression : doFtpItem.get("TASKCRON").toString();// 濡傛灉娌℃湁閰嶇疆鍒欙紝姣忎竴鍒嗚繍琛屼竴娆�
+ // 璁剧疆瑙﹀彂鏃堕棿鐐�
+ CronScheduleBuilder cronScheduleBuilder =CronScheduleBuilder.cronSchedule(cronExpression);
String jobName = prefixJobName + taskId;
String triggerName = prefixJobName + taskId;
-
- JobDetail jobDetail = scheduler.getJobDetail(jobName, PrvncFtpToFileSystemJob.JOB_GROUP_NAME);
+ //璁剧疆浠诲姟鍚嶇О
+ JobKey jobKey = new JobKey(jobName);
+ JobDetail jobDetail = scheduler.getJobDetail(jobKey);
// 璇存槑杩欎釜娌℃湁鍚姩锛屽垯闇�瑕侀噸鏂板惎鍔紝濡傛灉鍚姩鐫�涓嶅仛澶勭悊
if (jobDetail == null) {
// 浠诲姟鍚嶇О
String taskCfgName = (String) doFtpItem.get("TASKNAME");
-
- JobDetail warnJob = new JobDetail(jobName, PrvncFtpToFileSystemJob.JOB_GROUP_NAME, PrvncFtpToFileSystemJob.class);
-
+ //鏋勫缓job淇℃伅
+ JobDetail warnJob = JobBuilder.newJob(PrvncFtpToFileSystemJob.class).withIdentity(jobName,PrvncFtpToFileSystemJob.JOB_GROUP_NAME).withDescription("浠诲姟鍚姩").build();
+ // job.getJobDataMap().put("params", param.toString());
warnJob.getJobDataMap().put(PrvncFtpToFileSystemJob.JOB_DATA_CONFIG_NAME, taskCfgName);
warnJob.getJobDataMap().put(PrvncFtpToFileSystemJob.JOB_DATA_TASK_ID, taskId);
-
- CronTrigger warnTrigger = new CronTrigger(triggerName, triggerName, cronExpression);
+ // 瑙﹀彂鏃堕棿鐐�
+ CronTrigger warnTrigger = TriggerBuilder.newTrigger().withIdentity(triggerName, triggerName).withSchedule(cronScheduleBuilder).build();
// 閿欒繃鎵ц鍚庯紝绔嬪嵆鎵ц
- warnTrigger.setMisfireInstruction(CronTrigger.MISFIRE_INSTRUCTION_FIRE_ONCE_NOW);
-
+ //warnTrigger(CronTrigger.MISFIRE_INSTRUCTION_FIRE_ONCE_NOW);
+ //浜ょ敱Scheduler瀹夋帓瑙﹀彂
scheduler.scheduleJob(warnJob, warnTrigger);
// 淇敼鏁版嵁鐘舵�侊紝灏嗕换鍔℃暟鎹姸鎬佹敼涓鸿繍琛岀姸鎬�
@@ -616,9 +619,6 @@
List<Map> doFtpItems = getPrvncFtpFileDAO().queryFtpItemsByTaskIds(info);
- // 鑾峰彇Spring璋冨害鍣�
- Scheduler scheduler = (Scheduler) SpringBeanInvoker.getBean("schedulerFactoryBean");
-
int linstenCount = 0;
int updateTaskStateFailCount = 0;
try {
@@ -633,8 +633,15 @@
String jobName = prefixJobName + taskId;
String triggerName = prefixJobName + taskId;
- scheduler.deleteJob(jobName, PrvncFtpToFileSystemJob.JOB_GROUP_NAME);
+ TriggerKey triggerKey = TriggerKey.triggerKey(jobName,PrvncFtpToFileSystemJob.JOB_GROUP_NAME);
+ // 鍋滄瑙﹀彂鍣�
+ scheduler.pauseTrigger(triggerKey);
+ // 绉婚櫎瑙﹀彂鍣�
+ scheduler.unscheduleJob(triggerKey);
+ JobKey jobKey = new JobKey(jobName,PrvncFtpToFileSystemJob.JOB_GROUP_NAME);
+ // 鍒犻櫎浠诲姟
+ scheduler.deleteJob(jobKey);
// 淇敼鏁版嵁鐘舵�侊紝灏嗕换鍔℃暟鎹姸鎬佹敼涓鸿繍琛岀姸鎬�
Map updateTaskInfo = new HashMap();
--
Gitblit v1.8.0