Quartz使用-入门使用(java定时任务实现)

来源:互联网 发布:遗传算法中的objv 编辑:程序博客网 时间:2024/05/18 03:50
//测试main函数//QuartzTest.javapackage quartzPackage;import java.text.SimpleDateFormat;import java.util.Date;public class QuartzTest {    /** *//**     * @param args     */    public static void main(String[] args) {        // TODO Auto-generated method stub        SimpleDateFormat DateFormat = new SimpleDateFormat("yyyyMMddHHmmss");        Date d = new Date();        String returnstr = DateFormat.format(d);                TestJob job = new TestJob();        String job_name ="11";        try {            System.out.println(returnstr+ "【系统启动】");            QuartzManager.addJob(job_name,job,"0/2 * * * * ?"); //每2秒钟执行一次            //            Thread.sleep(10000);//            System.out.println("【修改时间】");//            QuartzManager.modifyJobTime(job_name,"0/10 * * * * ?");//            Thread.sleep(20000);//            System.out.println("【移除定时】");//            QuartzManager.removeJob(job_name);//            Thread.sleep(10000);//            //            System.out.println("/n【添加定时任务】");//            QuartzManager.addJob(job_name,job,"0/5 * * * * ?");                    }  catch (Exception e) {            e.printStackTrace();        }    }}

//简单的任务管理类//QuartzManager.javapackage quartzPackage;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;/** *//** * @Title:Quartz管理类 *  * @Description: *  * @Copyright:  * @author zz  2008-10-8 14:19:01 * @version 1.00.000 * */public class QuartzManager {   private static SchedulerFactory sf = new StdSchedulerFactory();   private static String JOB_GROUP_NAME = "group1";   private static String TRIGGER_GROUP_NAME = "trigger1";        /** *//**    *  添加一个定时任务,使用默认的任务组名,触发器名,触发器组名    * @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);//删除任务   }}


//测试工作类//TestJob.javapackage quartzPackage;import java.text.SimpleDateFormat;import java.util.Date;import org.quartz.Job;import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;public class TestJob implements Job {    SimpleDateFormat DateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");    Date d = new Date();    String returnstr = DateFormat.format(d);      public void execute(JobExecutionContext arg0) throws JobExecutionException {        // TODO Auto-generated method stub        System.out.println(returnstr+"★★★★★★★★★★★");    }}



0 0