




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Quartz的任务的临时启动和暂停和恢复【转】在项目中需要手动启停某些服务,那么需要有一个控制这些任务的类。由于任务是有Quartz控制的,我们只需要通过Quartz的相关的API实现相关的功能即可。 Java代码 1. package com.easyway.app.quartz.mgr; 2. 3. import java.util.Date; 4. import java.util.List; 5. import java.ut
2、il.Map; 6. 7. import org.quartz.JobDataMap; 8. import org.quartz.JobDetail; 9. import org.quartz.JobKey; 10. import org.quartz.Scheduler; 11. import org.quartz.SchedulerException; 12. import o
3、rg.quartz.SchedulerFactory; 13. import org.quartz.Trigger; 14. import org.quartz.TriggerKey; 15. import org.quartz.impl.StdSchedulerFactory; 16. import org.quartz.impl.matchers.GroupMatcher; 17. 18. /* 19.
4、160;* 一个简单的quartz任务管理器 20. * author longgangbai 21. * 22. */ 23. public class QuartzScheduleMgr 24. private static Scheduler scheduler=getScheduler(); 25.
5、60; /* 26. * 创建一个调度对象 27. * return 28. * throws SchedulerException 29. */ 30. private
6、60;static Scheduler getScheduler() 31. SchedulerFactory sf = new StdSchedulerFactory(); 32. Schedu
7、ler scheduler=null; 33. try 34. scheduler = sf.getScheduler(); 35.
8、; catch (SchedulerException e) 36. e.printStackTrace(); 37.
9、; 38. return scheduler; 39. 40. public static Scheduler getInstanceScheduler() 41.
10、160; return scheduler; 42. 43. 44. /* 45. * 启动一个调度对象 46. * throws SchedulerException
11、160;47. */ 48. public void start() throws SchedulerException 49. 50. scheduler.start(); 51.
12、; 52. 53. /* 54. * 检查调度是否启动 55. * return 56. * throws SchedulerException 57.
13、0; */ 58. public boolean isStarted() throws SchedulerException 59. 60. return scheduler.isStarted(); 61.
14、 62. 63. /* 64. * 关闭调度信息 65. * throws SchedulerException 66. */ 67. public
15、 void shutdown() throws SchedulerException 68. scheduler.shutdown(); 69. 70. /* 71. *
16、添加调度的job信息 72. * param jobdetail 73. * param trigger 74. * return 75. * throws SchedulerException 76.
17、 */ 77. public Date scheduleJob(JobDetail jobdetail, Trigger trigger) 78. throws SchedulerException 79.
18、160; return scheduler.scheduleJob(jobdetail, trigger); 80. 81. /* 82. * 添加相关的触发器 83.
19、 * param trigger 84. * return 85. * throws SchedulerException 86. */ 87. public Date scheduleJob(Trigg
20、er trigger) throws SchedulerException 88. return scheduler.scheduleJob(trigger); 89. 90. /* 91. *
21、添加多个job任务 92. * param triggersAndJobs 93. * param replace 94. * throws SchedulerException 95. */
22、0;96. public void scheduleJobs(Map<JobDetail, List<Trigger>> triggersAndJobs, boolean replace) throws SchedulerException 97. 98.
23、 scheduler.scheduleJobs(triggersAndJobs, replace); 99. 100. /* 101. * 停止调度Job任务 102. * param triggerkey 103.
24、160; * return 104. * throws SchedulerException 105. */ 106. public boolean unscheduleJob(TriggerKey triggerkey) 107.
25、160; throws SchedulerException 108. return scheduler.unscheduleJob(triggerkey); 109. 110. 111.
26、/* 112. * 停止调度多个触发器相关的job 113. * param list 114. * return 115. * throws SchedulerException 116.
27、;*/ 117. public boolean unscheduleJobs(List<TriggerKey> triggerKeylist) throws SchedulerException 118. return scheduler.unscheduleJobs(triggerKeylist); 1
28、19. 120. /* 121. * 重新恢复触发器相关的job任务 122. * param triggerkey 123. * param trigger 124.
29、160; * return 125. * throws SchedulerException 126. */ 127. public Date rescheduleJob(TriggerKey triggerkey, Trigger trigger) 1
30、28. throws SchedulerException 129. return scheduler.rescheduleJob(triggerkey, trigger); 130. 131. /* 132.
31、160; * 添加相关的job任务 133. * param jobdetail 134. * param flag 135. * throws SchedulerException 136. */ 137.
32、0; public void addJob(JobDetail jobdetail, boolean flag) 138. throws SchedulerException 139.
33、 scheduler.addJob(jobdetail, flag); 140. 141. 142. /* 143. * 删除相关的job任务 144. * param jobkey 145.
34、160; * return 146. * throws SchedulerException 147. */ 148. public boolean deleteJob(JobKey jobkey) throws SchedulerException 149.
35、160; return scheduler.deleteJob(jobkey); 150. 151. 152. /* 153. * 删除相关的多个job任务 154. * param
36、 jobKeys 155. * return 156. * throws SchedulerException 157. */ 158. public boolean deleteJobs(List<Job
37、Key> jobKeys) 159. throws SchedulerException 160. return scheduler.deleteJobs(jobKeys); 161. 162. /* 163.
38、 * 164. * param jobkey 165. * throws SchedulerException 166. */ 167. public void triggerJob(Job
39、Key jobkey) throws SchedulerException 168. scheduler.triggerJob(jobkey); 169. 170. /* 171. *
40、0; 172. * param jobkey 173. * param jobdatamap 174. * throws SchedulerException 175. */ 176. pu
41、blic void triggerJob(JobKey jobkey, JobDataMap jobdatamap) 177. throws SchedulerException 178. scheduler
42、.triggerJob(jobkey, jobdatamap); 179. 180. /* 181. * 停止一个job任务 182. * param jobkey 183. * throws
43、60;SchedulerException 184. */ 185. public void pauseJob(JobKey jobkey) throws SchedulerException 186. scheduler.pauseJob(jobkey)
44、; 187. 188. /* 189. * 停止多个job任务 190. * param groupmatcher 191. * throws SchedulerException 192
45、. */ 193. public void pauseJobs(GroupMatcher<JobKey> groupmatcher) 194. throws SchedulerException
46、; 195. scheduler.pauseJobs(groupmatcher); 196. 197. /* 198. * 停止使用相关的触发器 199. * param trigg
47、erkey 200. * throws SchedulerException 201. */ 202. public void pauseTrigger(TriggerKey triggerkey) 203.
48、 throws SchedulerException 204. scheduler.pauseTrigger(triggerkey); 205. 206. 207. public void p
49、auseTriggers(GroupMatcher<TriggerKey> groupmatcher) 208. throws SchedulerException 209. scheduler.pauseTriggers(groupmatcher
50、); 210. 211. /* 212. * 恢复相关的job任务 213. * param jobkey 214. * throws SchedulerException 215.
51、160; */ 216. public void resumeJob(JobKey jobkey) throws SchedulerException 217. scheduler.pauseJob(jobkey); 218.
52、60; 219. 220. public void resumeJobs(GroupMatcher<JobKey> matcher) 221. throws SchedulerException
53、; 222. scheduler.resumeJobs(matcher); 223. 224. 225. public void resumeTrigger(TriggerKey triggerkey) 226. &
54、#160; throws SchedulerException 227. scheduler.resumeTrigger(triggerkey); 228. 229. 230.
55、; public void resumeTriggers(GroupMatcher<TriggerKey> groupmatcher) 231. throws SchedulerException 232. 233.
56、 scheduler.resumeTriggers(groupmatcher); 234. 235. /* 236. * 暂停调度中所有的job任务 237. * throws Schedule
57、rException 238. */ 239. public void pauseAll() throws SchedulerException 240. 241. scheduler.pauseAll();
58、; 242. 243. /* 244. * 恢复调度中所有的job的任务 245. * throws SchedulerException 246. */ 247.
59、60;public void resumeAll() throws SchedulerException 248. 249. scheduler.resumeAll(); 250. 251.
60、252. 253. 254. 创建一个Job任务:Java代码 1. /* 2. * Copyright 2005 - 2009 Terracotta, Inc. 3. * 4. * Licensed&
61、#160;under the Apache License, Version 2.0 (the "License"); you may not 5. * use this file except in compliance with the License. You may obtain a copy
62、160; 6. * of the License at 7. * 8. * /licenses/LICENSE-2.0 9. * 10. * Unless required by applicable law or agreed
63、60;to in writing, software 11. * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12. * WARRANTIES OR CONDITIONS OF ANY KIND,&
64、#160;either express or implied. See the 13. * License for the specific language governing permissions and limitations 14. * under the License. 15. * 16.
65、*/ 17. 18. package com.easyway.app.quartz.mgr; 19. 20. import java.util.Date; 21. 22. import org.slf4j.Logger; 23. import org.slf4j.LoggerFactory; 24. import org.quartz.Job;
66、;25. import org.quartz.JobExecutionContext; 26. import org.quartz.JobExecutionException; 27. 28. /* 29. * 一个简单的quartz调用job 30. * author longgangbai 31. * 32. */ 33. public class
67、0;HelloJob implements Job 34. 35. private static Logger _log = LoggerFactory.getLogger(HelloJob.class); 36. 37. public HelloJob() 38.
68、60; 39. 40. public void execute(JobExecutionContext context) 41. throws JobExecutionException 42.
69、;_("Hello World! - " + new Date(); 43. 44. 45. 创建触发器和调用相关的JobJava代码 1. /* 2. * Copyright 2005 - 2009 Terracotta,
70、0;Inc. 3. * 4. * Licensed under the Apache License, Version 2.0 (the "License"); you may not 5. * use this file except in compliance with t
71、he License. You may obtain a copy 6. * of the License at 7. * 8. * /licenses/LICENSE-2.0 9. * 10. * Unless
72、;required by applicable law or agreed to in writing, software 11. * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12. *
73、0;WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13. * License for the specific language governing permissions and limitations 14. * un
74、der the License. 15. * 16. */ 17. 18. package com.easyway.app.quartz.mgr; 19. 20. import static org.quartz.DateBuilder.evenMinuteDate; 21. import static org.quartz.JobBuilder.newJo
75、b; 22. import static org.quartz.TriggerBuilder.newTrigger; 23. 24. import java.util.Date; 25. 26. import org.quartz.JobDetail; 27. import org.quartz.Scheduler; 28. import org.quartz.Trigger;&
76、#160; 29. import org.slf4j.Logger; 30. import org.slf4j.LoggerFactory; 31. 32. /* 33. * 一个简单的测试quartz任务管理器测试类 34. * author longgangbai 35. * 36. */ 37. public class Quartz
77、ScheduleMain 38. 39. 40. /* 41. * 42. * throws Exception 43. */ 44.
78、; public void run() throws Exception 45. Logger log = LoggerFactory.getLogger(QuartzScheduleMain.class); 46. 47. log.i
79、nfo("- Initializing -"); 48. 49. / First we must get a reference to a scheduler 50. /从调度管理器中获取调度对象 &
80、#160;51. Scheduler sched = QuartzScheduleMgr.getInstanceScheduler(); 52. ("- Initialization Complete -"); 53. 54.
81、160; / computer a time that is on the next round minute 55. Date runTime = evenMinuteDate(new Date(); 56. 57.
82、60; ("- Scheduling Job -"); 58. 59. / define the job and tie it to our HelloJob class 60
83、. /创建相关的job信息 61. JobDetail job = newJob(HelloJob.class) 62. .withIdentity("job1",
84、60;"group1") 63. .build(); 64. 65. / Trigger the job to run
85、0;on the next round minute 66. /创建一个触发器的名称 67. Trigger trigger = newTrigger() 68.
86、 .withIdentity("trigger1", "group1") 69. .startAt(runTime) 70. .build(); 71.
87、0; 72. / Tell quartz to schedule the job using our trigger 73. /设置调度相关的Job 74.
88、; sched.scheduleJob(job, trigger); 75. (job.getKey() + " will run at: " + runTime); 76. 77.
89、0; / Start up the scheduler (nothing can actually run until the 78. / scheduler has been started) 79.
90、; /启动调度任务 80. sched.start(); 81. 82. ("- Started Scheduler -"); 83. 84. &
91、#160; try 85. Thread.sleep(25L * 1000L); 86. / executing. 87.
92、; catch (Exception e) 88. 89. /暂时停止Job任务开始执行 90. (&
93、quot;-pauseJob. -"); 91. sched.pauseJob(job.getKey(); 92. 93. try 94. Thread.sleep(10L
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿园禁止小学化教师培训
- 脱除烧结烟气中CO的方法及其系统
- 眩晕个案护理查房
- 2025年长春货运从业资格证考试500题答案
- 2025年广东出租车驾驶员考试题库答案
- 2025年福建客运知识考试答案大全解析
- 销售新人培训
- 既有建筑庭院燃气管道提升改造项目初步设计
- 教学反思讲座课件
- 脊髓炎护理查房模板
- 2025春季学期国开电大本科《管理英语3》一平台机考真题及答案(第十套)
- 湖南省2025年高考公安院校公安专业考生档案审核表
- 定额〔2025〕1号文-关于发布2018版电力建设工程概预算定额2024年度价格水平调整的通知
- 从销售员到销售总监的六门必修课
- 数列求和中常见放缩方法和技巧(含答案)
- 宝兴县中药材生产现状及发展思路
- 台州市幼儿园教师考核表.
- 小儿雾化吸入课件.ppt
- TM92成品鞋弯折测试
- 锁骨骨折幻灯片
- 高填方、深挖路堑边坡和软基监测方案
评论
0/150
提交评论