日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python热部署_定时任务-Quartz(热部署、冷部署)

發(fā)布時間:2024/10/8 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python热部署_定时任务-Quartz(热部署、冷部署) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

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(热部署、冷部署)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。