From 62a447d89331aee1feae7724c7616aa1bb2cfe79 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 16 十月 2024 14:28:37 +0800 Subject: [PATCH] 将CMQ替换为rabbitmq --- fanli/src/main/java/com/yeshi/fanli/job/QuartzManager.java | 405 ++++++++++++++++++++++++++++----------------------------- 1 files changed, 196 insertions(+), 209 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/job/QuartzManager.java b/fanli/src/main/java/com/yeshi/fanli/job/QuartzManager.java index 80d4d03..ccea73e 100644 --- a/fanli/src/main/java/com/yeshi/fanli/job/QuartzManager.java +++ b/fanli/src/main/java/com/yeshi/fanli/job/QuartzManager.java @@ -1,209 +1,196 @@ -package com.yeshi.fanli.job; - -import java.util.Iterator; -import java.util.Map; - -import org.quartz.CronScheduleBuilder; -import org.quartz.CronTrigger; -import org.quartz.JobBuilder; -import org.quartz.JobDetail; -import org.quartz.JobKey; -import org.quartz.Scheduler; -import org.quartz.TriggerBuilder; -import org.quartz.TriggerKey; -import org.springframework.stereotype.Component; - -import com.yeshi.fanli.log.LogHelper; - -@Component -public class QuartzManager { - - private static String JOB_GROUP_NAME = "EXTJWEB_JOBGROUP_NAME"; - private static String TRIGGER_GROUP_NAME = "EXTJWEB_TRIGGERGROUP_NAME"; - - /** - * 鍒涘缓浠诲姟锛氫娇鐢ㄩ粯璁� 浠诲姟缁勩�佸畾鏃剁粍鍚� - * @param sched - * @param jobName - * @param time - * @param params - * @param cls - */ - public static void addJob(Scheduler sched, @SuppressWarnings("rawtypes") Class cls, String jobName, - String time, Map<String, String> params) { - try { - - TriggerKey triggerKey = TriggerKey.triggerKey(jobName, TRIGGER_GROUP_NAME); - CronTrigger trigger = (CronTrigger) sched.getTrigger(triggerKey); - - if (trigger == null) { - LogHelper.test("------addJob---浠诲姟鍒涘缓-----" + jobName + "------- "); - JobDetail jobDetail = JobBuilder.newJob(cls).withIdentity(jobName, JOB_GROUP_NAME).build(); - if (params != null) { - Iterator<String> its = params.keySet().iterator(); - while (its.hasNext()) { - String key = its.next(); - jobDetail.getJobDataMap().put(key, params.get(key)); - } - } - CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(time); - trigger = TriggerBuilder.newTrigger().withIdentity(jobName, TRIGGER_GROUP_NAME) - .withSchedule(scheduleBuilder).build(); - sched.scheduleJob(jobDetail, trigger); - } - - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - - - - /** - * 淇敼浠诲姟 - * - * @param sched - * @param jobName - * @param jobGroupName - * @param triggerName - * @param triggerGroupName - * @param time - * @param params - * @param cls - */ - @SuppressWarnings("rawtypes") - public static void modifyJob(Scheduler sched, Class cls, String jobName, - String time, Map<String, String> params ) { - - try { - - LogHelper.test("------modifyJob---浠诲姟淇敼-----" + jobName + "------- "); - - TriggerKey triggerKey = TriggerKey.triggerKey(jobName, TRIGGER_GROUP_NAME); - CronTrigger trigger = (CronTrigger) sched.getTrigger(triggerKey); - - if (trigger == null) { - return; - } - - // 鍒犻櫎鍘熶换鍔� - removeJob(sched, jobName); - - // 鏂板缓浠诲姟 - addJob(sched, QualityFactoryJob.class, jobName, time, params); - - } catch (Exception e) { - e.printStackTrace(); - throw new RuntimeException(e); - } - } - - - - /** - * @Description: 淇敼涓�涓换鍔$殑瑙﹀彂鏃堕棿 - * - * @param sched - * 璋冨害鍣� * - * @param sched - * 璋冨害鍣� - * @param triggerName - * @param triggerGroupName - * @param time - * - * @Title: QuartzManager.java - */ - public static void modifyJobTime(Scheduler sched, String triggerName, String triggerGroupName, String time) { - try { - TriggerKey triggerKey = TriggerKey.triggerKey(triggerName, triggerGroupName); - CronTrigger trigger = (CronTrigger) sched.getTrigger(triggerKey); - if (trigger == null) { - return; - } - // Trigger宸插瓨鍦紝閭d箞鏇存柊鐩稿簲鐨勫畾鏃惰缃� - CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(time); - - // 鎸夋柊鐨刢ronExpression琛ㄨ揪寮忛噸鏂版瀯寤簍rigger - trigger = trigger.getTriggerBuilder().withIdentity(triggerKey).withSchedule(scheduleBuilder).build(); - - // 鎸夋柊鐨則rigger閲嶆柊璁剧疆job鎵ц - sched.rescheduleJob(triggerKey, trigger); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - - /** - * @Description: 绉婚櫎涓�涓换鍔� - * - * @param sched - * 璋冨害鍣� - * @param jobName - * @param jobGroupName - * @param triggerName - * @param triggerGroupName - * - * @Title: QuartzManager.java - */ - public static void removeJob(Scheduler sched, String jobName) { - try { - - LogHelper.test("------modifyJob---浠诲姟鍒犻櫎-----" + jobName + "------- "); - - - JobKey jobKey = new JobKey(jobName, JOB_GROUP_NAME); - sched.pauseJob(jobKey); - - TriggerKey triggerKey = TriggerKey.triggerKey(jobName, TRIGGER_GROUP_NAME); - - sched.pauseTrigger(triggerKey); // 鍋滄瑙﹀彂鍣� - sched.unscheduleJob(triggerKey);// 绉婚櫎瑙﹀彂鍣� - - sched.pauseJob(jobKey); // 鍋滄浠诲姟 - sched.deleteJob(jobKey);// 鍒犻櫎浠诲姟 - - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - /** - * @Description:鍚姩鎵�鏈夊畾鏃朵换鍔� - * - * @param sched - * 璋冨害鍣� - * - * @Title: QuartzManager.java - */ - public static void startJobs(Scheduler sched) { - try { - sched.start(); - } catch (Exception e) { - e.printStackTrace(); - throw new RuntimeException(e); - } - } - - /** - * @Description:鍏抽棴鎵�鏈夊畾鏃朵换鍔� - * - * - * @param sched - * 璋冨害鍣� - * - * - * @Title: QuartzManager.java - */ - public static void shutdownJobs(Scheduler sched) { - try { - if (!sched.isShutdown()) { - sched.shutdown(); - } - } catch (Exception e) { - throw new RuntimeException(e); - } - } - -} +package com.yeshi.fanli.job; + +import org.quartz.CronScheduleBuilder; +import org.quartz.CronTrigger; +import org.quartz.Job; +import org.quartz.JobBuilder; +import org.quartz.JobDetail; +import org.quartz.JobKey; +import org.quartz.Scheduler; +import org.quartz.TriggerBuilder; +import org.quartz.TriggerKey; +import org.springframework.stereotype.Component; + +import com.yeshi.fanli.log.LogHelper; + +@Component +public class QuartzManager { + + private static String JOB_GROUP_NAME = "EXTJWEB_JOBGROUP_NAME"; + private static String TRIGGER_GROUP_NAME = "EXTJWEB_TRIGGERGROUP_NAME"; + + /** + * 鍒涘缓浠诲姟锛氫娇鐢ㄩ粯璁� 浠诲姟缁勩�佸畾鏃剁粍鍚� + * @param sched + * @param jobName + * @param time + * @param params + * @param cls + */ + public static void addJob(Scheduler sched, Class <? extends Job> jobClass, String jobName, + String time, Object obj) { + try { + + TriggerKey triggerKey = TriggerKey.triggerKey(jobName, TRIGGER_GROUP_NAME); + CronTrigger trigger = (CronTrigger) sched.getTrigger(triggerKey); + + if (trigger == null) { + LogHelper.test("------addJob---浠诲姟鍒涘缓-----" + jobName + "------- "); + JobDetail jobDetail = JobBuilder.newJob(jobClass).withIdentity(jobName, JOB_GROUP_NAME).build(); + if (obj != null) { + jobDetail.getJobDataMap().put("key", obj); + } + CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(time); + trigger = TriggerBuilder.newTrigger().withIdentity(jobName, TRIGGER_GROUP_NAME) + .withSchedule(scheduleBuilder).build(); + sched.scheduleJob(jobDetail, trigger); + } + + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + + + + /** + * 淇敼浠诲姟 + * + * @param sched + * @param jobName + * @param jobGroupName + * @param triggerName + * @param triggerGroupName + * @param time + * @param params + * @param cls + */ + public static void modifyJob(Scheduler sched, Class <? extends Job> jobClass, String jobName, + String time, Object obj) { + try { + LogHelper.test("------modifyJob---浠诲姟淇敼-----" + jobName + "------- "); + TriggerKey triggerKey = TriggerKey.triggerKey(jobName, TRIGGER_GROUP_NAME); + CronTrigger trigger = (CronTrigger) sched.getTrigger(triggerKey); + + if (trigger == null) + return; + + // 鍒犻櫎鍘熶换鍔� + removeJob(sched, jobName); + // 鏂板缓浠诲姟 + addJob(sched, jobClass, jobName, time, obj); + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException(e); + } + } + + + + /** + * @Description: 淇敼涓�涓换鍔$殑瑙﹀彂鏃堕棿 + * + * @param sched + * 璋冨害鍣� * + * @param sched + * 璋冨害鍣� + * @param triggerName + * @param triggerGroupName + * @param time + * + * @Title: QuartzManager.java + */ + public static void modifyJobTime(Scheduler sched, String triggerName, String triggerGroupName, String time) { + try { + TriggerKey triggerKey = TriggerKey.triggerKey(triggerName, triggerGroupName); + CronTrigger trigger = (CronTrigger) sched.getTrigger(triggerKey); + if (trigger == null) { + return; + } + // Trigger宸插瓨鍦紝閭d箞鏇存柊鐩稿簲鐨勫畾鏃惰缃� + CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(time); + + // 鎸夋柊鐨刢ronExpression琛ㄨ揪寮忛噸鏂版瀯寤簍rigger + trigger = trigger.getTriggerBuilder().withIdentity(triggerKey).withSchedule(scheduleBuilder).build(); + + // 鎸夋柊鐨則rigger閲嶆柊璁剧疆job鎵ц + sched.rescheduleJob(triggerKey, trigger); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + + /** + * @Description: 绉婚櫎涓�涓换鍔� + * + * @param sched + * 璋冨害鍣� + * @param jobName + * @param jobGroupName + * @param triggerName + * @param triggerGroupName + * + * @Title: QuartzManager.java + */ + public static void removeJob(Scheduler sched, String jobName) { + try { + + LogHelper.test("------modifyJob---浠诲姟鍒犻櫎-----" + jobName + "------- "); + + + JobKey jobKey = new JobKey(jobName, JOB_GROUP_NAME); + sched.pauseJob(jobKey); + + TriggerKey triggerKey = TriggerKey.triggerKey(jobName, TRIGGER_GROUP_NAME); + + sched.pauseTrigger(triggerKey); // 鍋滄瑙﹀彂鍣� + sched.unscheduleJob(triggerKey);// 绉婚櫎瑙﹀彂鍣� + + sched.pauseJob(jobKey); // 鍋滄浠诲姟 + sched.deleteJob(jobKey);// 鍒犻櫎浠诲姟 + + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + /** + * @Description:鍚姩鎵�鏈夊畾鏃朵换鍔� + * + * @param sched + * 璋冨害鍣� + * + * @Title: QuartzManager.java + */ + public static void startJobs(Scheduler sched) { + try { + sched.start(); + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException(e); + } + } + + /** + * @Description:鍏抽棴鎵�鏈夊畾鏃朵换鍔� + * + * + * @param sched + * 璋冨害鍣� + * + * + * @Title: QuartzManager.java + */ + public static void shutdownJobs(Scheduler sched) { + try { + if (!sched.isShutdown()) { + sched.shutdown(); + } + } catch (Exception e) { + throw new RuntimeException(e); + } + } + +} -- Gitblit v1.8.0