博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
管理Quarz的工具类,QuarzManager
阅读量:7079 次
发布时间:2019-06-28

本文共 4873 字,大约阅读时间需要 16 分钟。

  hot3.png

package com.test.quarz;import java.text.ParseException;import org.quartz.CronTrigger;import org.quartz.Job;import org.quartz.JobDetail;import org.quartz.Scheduler;import org.quartz.SchedulerException;import org.quartz.SchedulerFactory;import org.quartz.Trigger;import org.quartz.impl.StdSchedulerFactory;public class QuarzManager {		private static SchedulerFactory sf = new StdSchedulerFactory();		private static String JOB_GROUP_NAME = "jobGroup1";		private static String TRIGGER_GROUP_NAME = "triggerGroup1";			 /** *//** 	    * 添加一个定时任务,使用默认的任务组名,触发器名,触发器组名 	    * @param jobName 任务名 	    * @param job     任务 	    * @param time    时间设置,参考quartz说明文档 	    * @throws SchedulerException 	    * @throws ParseException 	    */  	   public static void addJob(String jobName,Job job,String time)   	                               throws SchedulerException, ParseException{  	       Scheduler sched = sf.getScheduler();  	       JobDetail jobDetail = new JobDetail(jobName, JOB_GROUP_NAME, job.getClass());//任务名,任务组,任务执行类  	       //触发器  	       CronTrigger trigger =   	            new CronTrigger(jobName, TRIGGER_GROUP_NAME);//触发器名,触发器组  	       trigger.setCronExpression(time);//触发器时间设定  	       sched.scheduleJob(jobDetail,trigger);  	       //启动  	       if(!sched.isShutdown())  	          sched.start();  	   }  	     	   /** *//** 	    * 添加一个定时任务 	    * @param jobName 任务名 	    * @param jobGroupName 任务组名 	    * @param triggerName 触发器名 	    * @param triggerGroupName 触发器组名 	    * @param job     任务 	    * @param time    时间设置,参考quartz说明文档 	    * @throws SchedulerException 	    * @throws ParseException 	    */  	   public static void addJob(String jobName,String jobGroupName,  	                             String triggerName,String triggerGroupName,  	                             Job job,String time)   	                               throws SchedulerException, ParseException{  	       Scheduler sched = sf.getScheduler();  	       JobDetail jobDetail = new JobDetail(jobName, jobGroupName, job.getClass());//任务名,任务组,任务执行类  	       //触发器  	       CronTrigger trigger =   	            new CronTrigger(triggerName, triggerGroupName);//触发器名,触发器组  	       trigger.setCronExpression(time);//触发器时间设定  	       sched.scheduleJob(jobDetail,trigger);  	       if(!sched.isShutdown())  	          sched.start();  	   }  	     	   /** *//** 	    * 修改一个任务的触发时间(使用默认的任务组名,触发器名,触发器组名) 	    * @param jobName 	    * @param time 	    * @throws SchedulerException	    * @throws ParseException 	    */  	   public static void modifyJobTime(String jobName,String time)   	                                  throws SchedulerException, ParseException{  	       Scheduler sched = sf.getScheduler();  	       Trigger trigger = sched.getTrigger(jobName,TRIGGER_GROUP_NAME);  	       if(trigger != null){  	           CronTrigger ct = (CronTrigger)trigger;  	           ct.setCronExpression(time);  	           sched.resumeTrigger(jobName,TRIGGER_GROUP_NAME);  	       }  	   }  	     	   /** *//** 	    * 修改一个任务的触发时间 	    * @param triggerName 	    * @param triggerGroupName 	    * @param time 	    * @throws SchedulerException 	    * @throws ParseException 	    */  	   public static void modifyJobTime(String triggerName,String triggerGroupName,  	                                    String time)   	                                  throws SchedulerException, ParseException{  	       Scheduler sched = sf.getScheduler();  	       Trigger trigger = sched.getTrigger(triggerName,triggerGroupName);  	       if(trigger != null){  	           CronTrigger ct = (CronTrigger)trigger;  	           //修改时间  	           ct.setCronExpression(time);  	           //重启触发器  	           sched.resumeTrigger(triggerName,triggerGroupName);  	       }  	   }  	     	   /** *//** 	    * 移除一个任务(使用默认的任务组名,触发器名,触发器组名) 	    * @param jobName 	    * @throws SchedulerException 	    */  	   public static void removeJob(String jobName)   	                               throws SchedulerException{  	       Scheduler sched = sf.getScheduler();  	       sched.pauseTrigger(jobName,TRIGGER_GROUP_NAME);//停止触发器  	       sched.unscheduleJob(jobName,TRIGGER_GROUP_NAME);//移除触发器  	       sched.deleteJob(jobName,JOB_GROUP_NAME);//删除任务  	   }  	     	   /** *//** 	    * 移除一个任务 	    * @param jobName 	    * @param jobGroupName 	    * @param triggerName 	    * @param triggerGroupName 	    * @throws SchedulerException 	    */  	   public static void removeJob(String jobName,String jobGroupName,  	                                String triggerName,String triggerGroupName)   	                               throws SchedulerException{  	       Scheduler sched = sf.getScheduler();  	       sched.pauseTrigger(triggerName,triggerGroupName);//停止触发器  	       sched.unscheduleJob(triggerName,triggerGroupName);//移除触发器  	       sched.deleteJob(jobName,jobGroupName);//删除任务  	   }  	}

转载于:https://my.oschina.net/ski/blog/108753

你可能感兴趣的文章
又见日志-从日志中的思考
查看>>
maven dependency
查看>>
Navicat 快捷键总结
查看>>
Windows Server 2012 之NIC组合(NIC Teaming)介绍
查看>>
电脑无需设置DNS网关该如何上网
查看>>
系统负载能力浅析
查看>>
各种mysql视频的学习笔记
查看>>
OC高效率52之以“自动释放池块”降低内存峰值
查看>>
Linux初学者笔记01
查看>>
Android ListView或GridView中含有CheckBox时,获取选中的id
查看>>
Struts2 - 配置备忘
查看>>
Linux集群简介以及lvs-dr部署(二)
查看>>
eclipse创建maven
查看>>
layer ui使用多层弹框时,各个页面交互问题
查看>>
linux基本命令2 创建文件/文件夹/复制文件/文件夹
查看>>
电脑远程连接建立和设置连接选项操作步骤
查看>>
MySQL常用查询语句(23个)
查看>>
Date/TimePicker
查看>>
pc端车牌识别在智能机器人上的应用
查看>>
对接小结
查看>>