在项目中需要手动启停某些服务,那么需要有一个控制这些任务的类。由于任务是有Quartz控制的,我们只需要通过Quartz的相关的API实现相关的功能即可。
- package com.easyway.app.quartz.mgr;
-
- import java.util.Date;
- import java.util.List;
- import java.util.Map;
-
- import org.quartz.JobDataMap;
- import org.quartz.JobDetail;
- import org.quartz.JobKey;
- import org.quartz.Scheduler;
- import org.quartz.SchedulerException;
- import org.quartz.SchedulerFactory;
- import org.quartz.Trigger;
- import org.quartz.TriggerKey;
- import org.quartz.impl.StdSchedulerFactory;
- import org.quartz.impl.matchers.GroupMatcher;
-
- public class QuartzScheduleMgr {
- private static Scheduler scheduler=getScheduler();
-
- private static Scheduler getScheduler() {
- SchedulerFactory sf = new StdSchedulerFactory();
- Scheduler scheduler=null;
- try {
- scheduler = sf.getScheduler();
- } catch (SchedulerException e) {
- e.printStackTrace();
- }
- return scheduler;
- }
- public static Scheduler getInstanceScheduler(){
- return scheduler;
- }
-
-
- public void start() throws SchedulerException
- {
- scheduler.start();
- }
-
-
- public boolean isStarted() throws SchedulerException
- {
- return scheduler.isStarted();
- }
-
-
- public void shutdown() throws SchedulerException {
- scheduler.shutdown();
- }
-
- public Date scheduleJob(JobDetail jobdetail, Trigger trigger)
- throws SchedulerException{
- return scheduler.scheduleJob(jobdetail, trigger);
- }
-
- public Date scheduleJob(Trigger trigger) throws SchedulerException{
- return scheduler.scheduleJob(trigger);
- }
-
- public void scheduleJobs(Map<JobDetail, List<Trigger>> triggersAndJobs, boolean replace) throws SchedulerException
- {
- scheduler.scheduleJobs(triggersAndJobs, replace);
- }
-
- public boolean unscheduleJob(TriggerKey triggerkey)
- throws SchedulerException{
- return scheduler.unscheduleJob(triggerkey);
- }
-
-
- public boolean unscheduleJobs(List<TriggerKey> triggerKeylist) throws SchedulerException{
- return scheduler.unscheduleJobs(triggerKeylist);
- }
-
- public Date rescheduleJob(TriggerKey triggerkey, Trigger trigger)
- throws SchedulerException{
- return scheduler.rescheduleJob(triggerkey, trigger);
- }
-
- public void addJob(JobDetail jobdetail, boolean flag)
- throws SchedulerException {
- scheduler.addJob(jobdetail, flag);
- }
-
-
- public boolean deleteJob(JobKey jobkey) throws SchedulerException{
- return scheduler.deleteJob(jobkey);
- }
-
-
- public boolean deleteJobs(List<JobKey> jobKeys)
- throws SchedulerException{
- return scheduler.deleteJobs(jobKeys);
- }
-
- public void triggerJob(JobKey jobkey) throws SchedulerException {
- scheduler.triggerJob(jobkey);
- }
-
- public void triggerJob(JobKey jobkey, JobDataMap jobdatamap)
- throws SchedulerException {
- scheduler.triggerJob(jobkey, jobdatamap);
- }
-
- public void pauseJob(JobKey jobkey) throws SchedulerException {
- scheduler.pauseJob(jobkey);
- }
-
- public void pauseJobs(GroupMatcher<JobKey> groupmatcher)
- throws SchedulerException {
- scheduler.pauseJobs(groupmatcher);
- }
-
- public void pauseTrigger(TriggerKey triggerkey)
- throws SchedulerException {
- scheduler.pauseTrigger(triggerkey);
- }
-
- public void pauseTriggers(GroupMatcher<TriggerKey> groupmatcher)
- throws SchedulerException {
- scheduler.pauseTriggers(groupmatcher);
- }
-
- public void resumeJob(JobKey jobkey) throws SchedulerException {
- scheduler.pauseJob(jobkey);
- }
-
- public void resumeJobs(GroupMatcher<JobKey> matcher)
- throws SchedulerException {
- scheduler.resumeJobs(matcher);
- }
-
- public void resumeTrigger(TriggerKey triggerkey)
- throws SchedulerException {
- scheduler.resumeTrigger(triggerkey);
- }
-
- public void resumeTriggers(GroupMatcher<TriggerKey> groupmatcher)
- throws SchedulerException
- {
- scheduler.resumeTriggers(groupmatcher);
- }
-
- public void pauseAll() throws SchedulerException
- {
- scheduler.pauseAll();
- }
-
- public void resumeAll() throws SchedulerException
- {
- scheduler.resumeAll();
- }
-
-
-
- }
创建一个Job任务:
-
- package com.easyway.app.quartz.mgr;
-
- import java.util.Date;
-
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.quartz.Job;
- import org.quartz.JobExecutionContext;
- import org.quartz.JobExecutionException;
-
- public class HelloJob implements Job {
-
- private static Logger _log = LoggerFactory.getLogger(HelloJob.class);
-
- public HelloJob() {
- }
-
- public void execute(JobExecutionContext context)
- throws JobExecutionException {
- _log.info("Hello World! - " + new Date());
- }
-
- }
创建触发器和调用相关的Job