python热部署_定时任务-Quartz(热部署、冷部署)
1 packagecom.sh.test;2
3 importorg.quartz.CronTrigger;4 importorg.quartz.JobDetail;5 importorg.quartz.Scheduler;6 importorg.quartz.SchedulerFactory;7 importorg.quartz.impl.StdSchedulerFactory;8
9 /**
10 * @Description: 定時任務管理類11 *12 * @ClassName: QuartzManager13 * @Copyright: Copyright (c) 201514 *15 *@authorSH16 *@versionV2.017 */
18 public classQuartzManager {19 private static SchedulerFactory gSchedulerFactory = newStdSchedulerFactory();20 private static String JOB_GROUP_NAME = "EXTJWEB_JOBGROUP_NAME";21 private static String TRIGGER_GROUP_NAME = "EXTJWEB_TRIGGERGROUP_NAME";22
23 /**
24 * @Description: 添加一個定時任務,使用默認的任務組名,觸發(fā)器名,觸發(fā)器組名25 *26 *@paramjobName27 * 任務名28 *@paramcls29 * 任務30 *@paramtime31 * 時間設置,參考quartz說明文檔32 *33 * @Title: QuartzManager.java34 * @Copyright: Copyright (c) 201535 *36 *@authorSH37 *@versionV2.038 */
39 @SuppressWarnings("unchecked")40 public static voidaddJob(String jobName, Class cls, String time) {41 try{42 Scheduler sched =gSchedulerFactory.getScheduler();43 JobDetail jobDetail = new JobDetail(jobName, JOB_GROUP_NAME, cls);//任務名,任務組,任務執(zhí)行類44 //觸發(fā)器
45 CronTrigger trigger = new CronTrigger(jobName, TRIGGER_GROUP_NAME);//觸發(fā)器名,觸發(fā)器組
46 trigger.setCronExpression(time);//觸發(fā)器時間設定
47 sched.scheduleJob(jobDetail, trigger);48 //啟動
49 if (!sched.isShutdown()) {50 sched.start();51 }52 } catch(Exception e) {53 throw newRuntimeException(e);54 }55 }56
57 /**
58 * @Description: 添加一個定時任務59 *60 *@paramjobName61 * 任務名62 *@paramjobGroupName63 * 任務組名64 *@paramtriggerName65 * 觸發(fā)器名66 *@paramtriggerGroupName67 * 觸發(fā)器組名68 *@paramjobClass69 * 任務70 *@paramtime71 * 時間設置,參考quartz說明文檔72 *73 * @Title: QuartzManager.java74 * @Copyright: Copyright (c) 201575 *76 *@authorSH77 *@versionV2.078 */
79 @SuppressWarnings("unchecked")80 public static voidaddJob(String jobName, String jobGroupName,81 String triggerName, String triggerGroupName, Class jobClass,82 String time) {83 try{84 Scheduler sched =gSchedulerFactory.getScheduler();85 JobDetail jobDetail = new JobDetail(jobName, jobGroupName, jobClass);//任務名,任務組,任務執(zhí)行類86 //觸發(fā)器
87 CronTrigger trigger = new CronTrigger(triggerName, triggerGroupName);//觸發(fā)器名,觸發(fā)器組
88 trigger.setCronExpression(time);//觸發(fā)器時間設定
89 sched.scheduleJob(jobDetail, trigger);90 } catch(Exception e) {91 throw newRuntimeException(e);92 }93 }94
95 /**
96 * @Description: 修改一個任務的觸發(fā)時間(使用默認的任務組名,觸發(fā)器名,觸發(fā)器組名)97 *98 *@paramjobName99 *@paramtime100 *101 * @Title: QuartzManager.java102 * @Copyright: Copyright (c) 2015103 *104 *@authorSH105 *@versionV2.0106 */
107 @SuppressWarnings("unchecked")108 public static voidmodifyJobTime(String jobName, String time) {109 try{110 Scheduler sched =gSchedulerFactory.getScheduler();111 CronTrigger trigger =(CronTrigger) sched.getTrigger(jobName,TRIGGER_GROUP_NAME);112 if (trigger == null) {113 return;114 }115 String oldTime =trigger.getCronExpression();116 if (!oldTime.equalsIgnoreCase(time)) {117 JobDetail jobDetail =sched.getJobDetail(jobName,JOB_GROUP_NAME);118 Class objJobClass =jobDetail.getJobClass();119 removeJob(jobName);120 addJob(jobName, objJobClass, time);121 }122 } catch(Exception e) {123 throw newRuntimeException(e);124 }125 }126
127 /**
128 * @Description: 修改一個任務的觸發(fā)時間129 *130 *@paramtriggerName131 *@paramtriggerGroupName132 *@paramtime133 *134 * @Title: QuartzManager.java135 * @Copyright: Copyright (c) 2015136 *137 *@authorSH138 *@versionV2.0139 */
140 public static voidmodifyJobTime(String triggerName,141 String triggerGroupName, String time) {142 try{143 Scheduler sched =gSchedulerFactory.getScheduler();144 CronTrigger trigger =(CronTrigger) sched.getTrigger(triggerName,triggerGroupName);145 if (trigger == null) {146 return;147 }148 String oldTime =trigger.getCronExpression();149 if (!oldTime.equalsIgnoreCase(time)) {150 CronTrigger ct =(CronTrigger) trigger;151 //修改時間
152 ct.setCronExpression(time);153 //重啟觸發(fā)器
154 sched.resumeTrigger(triggerName, triggerGroupName);155 }156 } catch(Exception e) {157 throw newRuntimeException(e);158 }159 }160
161 /**
162 * @Description: 移除一個任務(使用默認的任務組名,觸發(fā)器名,觸發(fā)器組名)163 *164 *@paramjobName165 *166 * @Title: QuartzManager.java167 * @Copyright: Copyright (c) 2015168 *169 *@authorSH170 *@versionV2.0171 */
172 public static voidremoveJob(String jobName) {173 try{174 Scheduler sched =gSchedulerFactory.getScheduler();175 sched.pauseTrigger(jobName, TRIGGER_GROUP_NAME);//停止觸發(fā)器
176 sched.unscheduleJob(jobName, TRIGGER_GROUP_NAME);//移除觸發(fā)器
177 sched.deleteJob(jobName, JOB_GROUP_NAME);//刪除任務
178 } catch(Exception e) {179 throw newRuntimeException(e);180 }181 }182
183 /**
184 * @Description: 移除一個任務185 *186 *@paramjobName187 *@paramjobGroupName188 *@paramtriggerName189 *@paramtriggerGroupName190 *191 * @Title: QuartzManager.java192 * @Copyright: Copyright (c) 2015193 *194 *@authorSH195 *@versionV2.0196 */
197 public static voidremoveJob(String jobName, String jobGroupName,198 String triggerName, String triggerGroupName) {199 try{200 Scheduler sched =gSchedulerFactory.getScheduler();201 sched.pauseTrigger(triggerName, triggerGroupName);//停止觸發(fā)器
202 sched.unscheduleJob(triggerName, triggerGroupName);//移除觸發(fā)器
203 sched.deleteJob(jobName, jobGroupName);//刪除任務
204 } catch(Exception e) {205 throw newRuntimeException(e);206 }207 }208
209 /**
210 * @Description:啟動所有定時任務211 *212 *213 * @Title: QuartzManager.java214 * @Copyright: Copyright (c) 2015215 *216 *@authorSH217 *@versionV2.0218 */
219 public static voidstartJobs() {220 try{221 Scheduler sched =gSchedulerFactory.getScheduler();222 sched.start();223 } catch(Exception e) {224 throw newRuntimeException(e);225 }226 }227
228 /**
229 * @Description:關閉所有定時任務230 *231 *232 * @Title: QuartzManager.java233 * @Copyright: Copyright (c) 2015234 *235 *@authorSH236 *@versionV2.0237 */
238 public static voidshutdownJobs() {239 try{240 Scheduler sched =gSchedulerFactory.getScheduler();241 if (!sched.isShutdown()) {242 sched.shutdown();243 }244 } catch(Exception e) {245 throw newRuntimeException(e);246 }247 }248 }
總結
以上是生活随笔為你收集整理的python热部署_定时任务-Quartz(热部署、冷部署)的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 地方各级人大代表均由选举单位或选民通过直
- 下一篇: java如何解析json_java 中解
