Quartz的任务的临时启动和暂停和恢复转.docx
- 文档编号:4295675
- 上传时间:2022-11-29
- 格式:DOCX
- 页数:15
- 大小:23.39KB
Quartz的任务的临时启动和暂停和恢复转.docx
《Quartz的任务的临时启动和暂停和恢复转.docx》由会员分享,可在线阅读,更多相关《Quartz的任务的临时启动和暂停和恢复转.docx(15页珍藏版)》请在冰豆网上搜索。
Quartz的任务的临时启动和暂停和恢复转
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.util.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 org.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. * 一个简单的quartz任务管理器
20. * @author longgangbai
21. *
22. */
23.public class QuartzScheduleMgr {
24. private static Scheduler scheduler=getScheduler();
25. /**
26. * 创建一个调度对象
27. * @return
28. * @throws SchedulerException
29. */
30. private static Scheduler getScheduler() {
31. SchedulerFactory sf = new StdSchedulerFactory();
32. Scheduler scheduler=null;
33. try {
34. scheduler = sf.getScheduler();
35. } catch (SchedulerException e) {
36. e.printStackTrace();
37. }
38. return scheduler;
39. }
40. public static Scheduler getInstanceScheduler(){
41. return scheduler;
42. }
43.
44. /**
45. * 启动一个调度对象
46. * @throws SchedulerException
47. */
48. public void start() throws SchedulerException
49. {
50. scheduler.start();
51. }
52.
53. /**
54. * 检查调度是否启动
55. * @return
56. * @throws SchedulerException
57. */
58. public boolean isStarted() throws SchedulerException
59. {
60. return scheduler.isStarted();
61. }
62.
63. /**
64. * 关闭调度信息
65. * @throws SchedulerException
66. */
67. public void shutdown() throws SchedulerException {
68. scheduler.shutdown();
69. }
70. /**
71. * 添加调度的job信息
72. * @param jobdetail
73. * @param trigger
74. * @return
75. * @throws SchedulerException
76. */
77. public Date scheduleJob(JobDetail jobdetail, Trigger trigger)
78. throws SchedulerException{
79. return scheduler.scheduleJob(jobdetail, trigger);
80. }
81. /**
82. * 添加相关的触发器
83. * @param trigger
84. * @return
85. * @throws SchedulerException
86. */
87. public Date scheduleJob(Trigger trigger) throws SchedulerException{
88. return scheduler.scheduleJob(trigger);
89. }
90. /**
91. * 添加多个job任务
92. * @param triggersAndJobs
93. * @param replace
94. * @throws SchedulerException
95. */
96. public void scheduleJobs(Map
97. {
98. scheduler.scheduleJobs(triggersAndJobs, replace);
99. }
100. /**
101. * 停止调度Job任务
102. * @param triggerkey
103. * @return
104. * @throws SchedulerException
105. */
106. public boolean unscheduleJob(TriggerKey triggerkey)
107. throws SchedulerException{
108. return scheduler.unscheduleJob(triggerkey);
109. }
110.
111. /**
112. * 停止调度多个触发器相关的job
113. * @param list
114. * @return
115. * @throws SchedulerException
116. */
117. public boolean unscheduleJobs(List
118. return scheduler.unscheduleJobs(triggerKeylist);
119. }
120. /**
121. * 重新恢复触发器相关的job任务
122. * @param triggerkey
123. * @param trigger
124. * @return
125. * @throws SchedulerException
126. */
127. public Date rescheduleJob(TriggerKey triggerkey, Trigger trigger)
128. throws SchedulerException{
129. return scheduler.rescheduleJob(triggerkey, trigger);
130. }
131. /**
132. * 添加相关的job任务
133. * @param jobdetail
134. * @param flag
135. * @throws SchedulerException
136. */
137. public void addJob(JobDetail jobdetail, boolean flag)
138. throws SchedulerException {
139. scheduler.addJob(jobdetail, flag);
140. }
141.
142. /**
143. * 删除相关的job任务
144. * @param jobkey
145. * @return
146. * @throws SchedulerException
147. */
148. public boolean deleteJob(JobKey jobkey) throws SchedulerException{
149. return scheduler.deleteJob(jobkey);
150. }
151.
152. /**
153. * 删除相关的多个job任务
154. * @param jobKeys
155. * @return
156. * @throws SchedulerException
157. */
158. public boolean deleteJobs(List
159. throws SchedulerException{
160. return scheduler.deleteJobs(jobKeys);
161. }
162. /**
163. *
164. * @param jobkey
165. * @throws SchedulerException
166. */
167. public void triggerJob(JobKey jobkey) throws SchedulerException {
168. scheduler.triggerJob(jobkey);
169. }
170. /**
171. *
172. * @param jobkey
173. * @param jobdatamap
174. * @throws SchedulerException
175. */
176. public void triggerJob(JobKey jobkey, JobDataMap jobdatamap)
177. throws SchedulerException {
178. scheduler.triggerJob(jobkey, jobdatamap);
179. }
180. /**
181. * 停止一个job任务
182. * @param jobkey
183. * @throws SchedulerException
184. */
185. public void pauseJob(JobKey jobkey) throws SchedulerException {
186. scheduler.pauseJob(jobkey);
187. }
188. /**
189. * 停止多个job任务
190. * @param groupmatcher
191. * @throws SchedulerException
192. */
193. public void pauseJobs(GroupMatcher
194. throws SchedulerException {
195. scheduler.pauseJobs(groupmatcher);
196. }
197. /**
198. * 停止使用相关的触发器
199. * @param triggerkey
200. * @throws SchedulerException
201. */
202. public void pauseTrigger(TriggerKey triggerkey)
203. throws SchedulerException {
204. scheduler.pauseTrigger(triggerkey);
205. }
206.
207. public void pauseTriggers(GroupMatcher
208. throws SchedulerException {
209. scheduler.pauseTriggers(groupmatcher);
210. }
211. /**
212. * 恢复相关的job任务
213. * @param jobkey
214. * @throws SchedulerException
215. */
216. public void resumeJob(JobKey jobkey) throws SchedulerException {
217. scheduler.pauseJob(jobkey);
218. }
219.
220. public void resumeJobs(GroupMatcher
221. throws SchedulerException {
222. scheduler.resumeJobs(matcher);
223. }
224.
225. public void resumeTrigger(TriggerKey triggerkey)
226. throws SchedulerException {
227. scheduler.resumeTrigger(triggerkey);
228. }
229.
230. public void resumeTriggers(GroupMatcher
231. throws SchedulerException
232. {
233. scheduler.resumeTriggers(groupmatcher);
234. }
235. /**
236. * 暂停调度中所有的job任务
237. * @throws SchedulerException
238. */
239. public void pauseAll() throws SchedulerException
240. {
241. scheduler.pauseAll();
242. }
243. /**
244. * 恢复调度中所有的job的任务
245. * @throws SchedulerException
246. */
247. public void resumeAll() throws SchedulerException
248. {
249. scheduler.resumeAll();
250. }
251.
252.
253.
254.}
创建一个Job任务:
Java代码
1./*
2. * Copyright 2005 - 2009 Terracotta, Inc.
3. *
4. * Licensed 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
6. * of the License at
7. *
8. * http:
//www.apache.org/licenses/LICENSE-2.0
9. *
10. * Unless required by applicable law or agreed to in writing, software
11. * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12. * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13. * License for the specific language governing permissions and limitations
14. * under the License.
15. *
16. */
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;
25.import org.quartz.JobExecutionContext;
26.import org.quartz.JobExecutionException;
27.
28./**
29. * 一个简单的quartz调用job
30. * @author longgangbai
31. *
32. */
33.public class HelloJob implements Job {
34.
35. private static Logger _log = LoggerFactory.getLogger(HelloJob.class);
36.
37. public HelloJob() {
38. }
39.
40. public void execute(JobExecutionContext context)
41. throws JobExecutionException {
42. _log.info("Hello World!
- " + new Date());
43. }
44.
45.}
创建触发器和调用相关的Job
Java代码
1./*
2. * Copyright 2005 - 2009 Terracotta, Inc.
3. *
4. * Licensed under the Apache License, Version
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Quartz 任务 临时 启动 暂停 恢复