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