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: 添加一个定时任务,使用默认的任务组名,触发器名,触发器组名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);//任务名,任务组,任务执行类44 //触发器

45 CronTrigger trigger = new CronTrigger(jobName, TRIGGER_GROUP_NAME);//触发器名,触发器组

46 trigger.setCronExpression(time);//触发器时间设定

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 * 触发器名66 *@paramtriggerGroupName67 * 触发器组名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);//任务名,任务组,任务执行类86 //触发器

87 CronTrigger trigger = new CronTrigger(triggerName, triggerGroupName);//触发器名,触发器组

88 trigger.setCronExpression(time);//触发器时间设定

89 sched.scheduleJob(jobDetail, trigger);90 } catch(Exception e) {91 throw newRuntimeException(e);92 }93 }94

95 /**

96 * @Description: 修改一个任务的触发时间(使用默认的任务组名,触发器名,触发器组名)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: 修改一个任务的触发时间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 //重启触发器

154 sched.resumeTrigger(triggerName, triggerGroupName);155 }156 } catch(Exception e) {157 throw newRuntimeException(e);158 }159 }160

161 /**

162 * @Description: 移除一个任务(使用默认的任务组名,触发器名,触发器组名)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);//停止触发器

176 sched.unscheduleJob(jobName, TRIGGER_GROUP_NAME);//移除触发器

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);//停止触发器

202 sched.unscheduleJob(triggerName, triggerGroupName);//移除触发器

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(热部署、冷部署)相关推荐

  1. 微服务开发及部署_基于 Kubernetes 的微服务部署即代码

    在基于 Kubernetes 的基础设施即代码一文中,我概要地介绍了基于 Kubernetes 的 .NET Core 微服务和 CI/CD 动手实践工作坊使用的基础设施是如何使用代码描述的,以及它的 ...

  2. war包热更新_基于IDEA热部署更新服务器Tomcat类,服务器Tomcat热更新

    前言 在开发过程中,如果我们是使用的IDEA,就会知道IDEA有一个热更新的功能,何为热更新?就是在不重启Tomcat的情况下让服务器中的代码变更为最新的.这样既能快速的更新代码,又不用担心Tomca ...

  3. 儿童 编程 python 知乎_知乎热议!学完Python之后,我的编程能力竟然退化了!

    来源:雪球App,作者: 雪_雪雪_球,(https://xueqiu.com/7788828530/135705417) 在知乎上有一个特别火的问题:如何学Python? 你会看到很多高赞回答是: ...

  4. python linux教程_在RedHat系统Linux上部署Python的Celery框架的教程

    Celery (芹菜)是基于Python开发的分布式任务队列.它支持使用任务队列的方式在分布的机器/进程/线程上执行任务调度. 架构设计 Celery的架构由三部分组成,消息中间件(message b ...

  5. 30岁学python全栈_知乎热帖!戳痛100万程序员:我30岁了,我还能学Python吗?

    " 每个人对如何度过一生有着不同的答案,最重要的不是要不要"开始学习Python",而是认识你自己. --LEWIS " 最近,在知乎上看到关于30岁能不能学P ...

  6. 节点部署_国际电联设定大星座部署节点要求

    在埃及沙姆沙伊赫参加2019年世界无线电通信大会的世界各地监管者正在研究制定频谱规则,其中有很多涉及航天业 [<航天新闻>11月21日报道]国际电信联盟(ITU)11月20日称,全球频谱监 ...

  7. jboss7.1.1 部署_在JBoss AS 7上部署BroadleafCommerce 2.0

    jboss7.1.1 部署 前2个步骤实际上与Broadleaf无关,但是提到该步骤是为了使其易于执行(复制/粘贴)这些步骤. 步骤#1:在JBoss AS中配置数据源. <datasource ...

  8. ruoyi 多模块部署_大数据时代,独立部署的商城系统具有哪些优势?

    独立部署是把一个可部署软件包安装到一个指定IT环境上并让其按预定流程提供服务的过程. 现如今,越来越多的商家开始搭建网上商城系统,从而为自己积攒多年的客户群体提供更为便捷的购物模式,让购物变得更加智能 ...

  9. docker安装部署_有关docker安装yearning和部署inception(闭源)

    一.首先安装docker-compose curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker ...

最新文章

  1. 教你用U盘安装Ubuntu
  2. C语言模拟实现标准库函数之strstr()
  3. 华为发布基于第二代英特尔®至强®可扩展处理器家族的新一代服务器
  4. C#用注册表开机自动启动某某软件
  5. 苹果手机传照片到电脑_如何将苹果手机的照片和视频导到电脑上?小白看过来哦...
  6. [Python] L1-045 宇宙无敌大招呼-PAT团体程序设计天梯赛GPLT
  7. 【Flutter】基础组件【09】Button
  8. 【pygame】微信飞机大战
  9. 如何在工具类中注入Service
  10. 计算字符串相似度算法——Levenshtein
  11. 零基础学习编程大概需要多久?
  12. 橡皮擦的英语_小朋友们知道“橡皮擦”用英语该怎么说吗?
  13. SQL优化:使用distribute by 防止数据倾斜
  14. 此nbsp;夜nbsp;无nbsp;眠
  15. 多机型手机外观清洁与检测设备设计
  16. 服务器被打了之后怎么办?
  17. 向SQL Server数据库中插入日期型数据
  18. 如何招到一个靠谱的程序员,以及如何应对面试题
  19. 第三章:进程线程模型
  20. 马云卸任阿里CEO 演讲笔记

热门文章

  1. android碎片化的解决方法,解决 Android 设备碎片化--屏幕适配
  2. 5.3 计算机网络传输层之TCP协议(tcp协议特点、tcp报文段首部格式、tcp连接---三次握手、tcp连接释放---四次握手)
  3. stm32之PVD可编程电压监测器(掉电保存数据)
  4. java动态代理_Java 动态代理和依赖注入
  5. Qt / QMainWindow、QDialog、QWidget
  6. C++ public、protected、private区别
  7. java 中调用docker_如何通过Java程序执行docker命令
  8. haproxy mysql配置文件详解_HAProxy基础配置-haproxy的配置文件说明
  9. python中集合所用的reduce_Python中reduce函数和lambda表达式的学习
  10. 对话框 未能返回新代码元素 可能 没有ncb_JDK1.8的新特性 | 技术