Java任务调度框架Quartz教程

欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入

  不同版本测试:

  1.8.6jar包:

  [html]

  package com.test;

  import java.util.Date;

  import org.quartz.Job;

  import org.quartz.JobExecutionContext;

  import org.quartz.JobExecutionException;

  /**

  * 需要执行的任务

  * @author lhy

  *

  */

  public class MyJob implements Job {

  @Override

  //把要执行的操作,写在execute方法中

  public void execute(JobExecutionContext arg0) throws JobExecutionException {

  System.out.println(“测试Quartz”+new Date());

  }

  }

  package com.test;

  import java.util.Date;

  import org.quartz.Job;

  import org.quartz.JobExecutionContext;

  import org.quartz.JobExecutionException;

  /**

  * 需要执行的任务

  * @author lhy

  *

  */

  public class MyJob implements Job {

  @Override

  //把要执行的操作,写在execute方法中

  public void execute(JobExecutionContext arg0) throws JobExecutionException {

  System.out.println(“测试Quartz”+new Date());

  }

  }

  使用SimpleTrigger触发器

  [html]

  package com.test;

  import java.util.Date;

  import org.quartz.JobDetail;

  import org.quartz.Scheduler;

  import org.quartz.SchedulerException;

  import org.quartz.SchedulerFactory;

  import org.quartz.SimpleTrigger;

  import org.quartz.impl.StdSchedulerFactory;

  /**

  * 调用任务的类

  * @author lhy

  *

  */

  public class SchedulerTest {

  public static void main(String[] args) {

  //通过schedulerFactory获取一个调度器

  SchedulerFactory schedulerfactory=new StdSchedulerFactory();

  Scheduler scheduler=null;

  try{

  // 通过schedulerFactory获取一个调度器

  scheduler=schedulerfactory.getScheduler();

  // 创建jobDetail实例,绑定Job实现类

  // 指明job的名称,所在组的名称,以及绑定job类

  JobDetail jobDetail=new JobDetail(“job1”, “jgroup1”, MyJob.class);

  // 定义调度触发规则,比如每1秒运行一次,共运行8次

  SimpleTrigger simpleTrigger=new SimpleTrigger(“simpleTrigger”,”triggerGroup”);

  // 马上启动

  simpleTrigger.setStartTime(new Date());

  // 间隔时间

  simpleTrigger.setRepeatInterval(1000);

  // 运行次数

  simpleTrigger.setRepeatCount(8);

  // 把作业和触发器注册到任务调度中

  scheduler.scheduleJob(jobDetail, simpleTrigger);

  // 启动调度

  scheduler.start();

  }catch(SchedulerException e){

  e.printStackTrace();

  }

  }

  }

  package com.test;

  import java.util.Date;

  import org.quartz.JobDetail;

  import org.quartz.Scheduler;

  import org.quartz.SchedulerException;

  import org.quartz.SchedulerFactory;

  import org.quartz.SimpleTrigger;

  import org.quartz.impl.StdSchedulerFactory;

  /**

  * 调用任务的类

  * @author lhy

  *

  */

  public class SchedulerTest {

  public static void main(String[] args) {

  //通过schedulerFactory获取一个调度器

  SchedulerFactory schedulerfactory=new StdSchedulerFactory();

  Scheduler scheduler=null;

  try{

  // 通过schedulerFactory获取一个调度器

  scheduler=schedulerfactory.getScheduler();

  // 创建jobDetail实例,绑定Job实现类

  // 指明job的名称,所在组的名称,以及绑定job类

  JobDetail jobDetail=new JobDetail(“job1”, “jgroup1”, MyJob.class);

  // 定义调度触发规则,比如每1秒运行一次,共运行8次

  SimpleTrigger simpleTrigger=new SimpleTrigger(“simpleTrigger”,”triggerGroup”);

  // 马上启动

  simpleTrigger.setStartTime(new Date());

  // 间隔时间

  simpleTrigger.setRepeatInterval(1000);

  // 运行次数

  simpleTrigger.setRepeatCount(8);

  // 把作业和触发器注册到任务调度中

  scheduler.scheduleJob(jobDetail, simpleTrigger);

  // 启动调度

  scheduler.start();

  }catch(SchedulerException e){

  e.printStackTrace();

  }

  }

  } 若使用CornTrigger触发器:

  [html]

  package com.test;

  import java.util.Date;

  import org.quartz.CronTrigger;

  import org.quartz.JobDetail;

  import org.quartz.Scheduler;

  import org.quartz.SchedulerException;

  import org.quartz.SchedulerFactory;

  import org.quartz.SimpleTrigger;

  import org.quartz.impl.StdSchedulerFactory;

  /**

  * 调用任务的类

  * @author lhy

  *

  */

  public class CronTriggerTest {

  public static void main(String[] args) {

  //通过schedulerFactory获取一个调度器

  SchedulerFactory schedulerfactory=new StdSchedulerFactory();

  Scheduler scheduler=null;

  try{

  // 通过schedulerFactory获取一个调度器

  scheduler=schedulerfactory.getScheduler();

  // 创建jobDetail实例,绑定Job实现类

  // 指明job的名称,所在组的名称,以及绑定job类

  JobDetail jobDetail=new JobDetail(“job1”, “jgroup1”, MyJob.class);

  // 定义调度触发规则,每天上午10:15执行

  CronTrigger cornTrigger=new CronTrigger(“cronTrigger”,”triggerGroup”);

  // 执行规则表达式

  cornTrigger.setCronExpression(“0 15 10 * * ? *”);

  // 把作业和触发器注册到任务调度中

  scheduler.scheduleJob(jobDetail, cornTrigger);

  // 启动调度

  scheduler.start();

  }catch(Exception e){

  e.printStackTrace();

  }

  }

  }

  package com.test;

  import java.util.Date;

  import org.quartz.CronTrigger;

  import org.quartz.JobDetail;

  import org.quartz.Scheduler;

  import org.quartz.SchedulerException;

  import org.quartz.SchedulerFactory;

  import org.quartz.SimpleTrigger;

  import org.quartz.impl.StdSchedulerFactory;

  /**

  * 调用任务的类

  * @author lhy

  *

  */

  public class CronTriggerTest {

  public static void main(String[] args) {

  //通过schedulerFactory获取一个调度器

  SchedulerFactory schedulerfactory=new StdSchedulerFactory();

  Scheduler scheduler=null;

  try{

  // 通过schedulerFactory获取一个调度器

  scheduler=schedulerfactory.getScheduler();

  // 创建jobDetail实例,绑定Job实现类

  // 指明job的名称,所在组的名称,以及绑定job类

  JobDetail jobDetail=new JobDetail(“job1”, “jgroup1”, MyJob.class);

  // 定义调度触发规则,每天上午10:15执行

  CronTrigger cornTrigger=new CronTrigger(“cronTrigger”,”triggerGroup”);

  // 执行规则表达式

  cornTrigger.setCronExpression(“0 15 10 * * ? *”);

  // 把作业和触发器注册到任务调度中

  scheduler.scheduleJob(jobDetail, cornTrigger);

  // 启动调度

  scheduler.start();

  }catch(Exception e){

  e.printStackTrace();

  }

  }

  }

  对于2.0.2jar包如下:

  其中的job类不变,主要是调度类如下:

  [html]

  package com.test;

  import java.util.Date;

  import org.quartz.CronScheduleBuilder;

  import org.quartz.JobBuilder;

  import org.quartz.JobDetail;

  import org.quartz.Scheduler;

  import org.quartz.SchedulerException;

  import org.quartz.SchedulerFactory;

  import org.quartz.SimpleScheduleBuilder;

  import org.quartz.Trigger;

  import org.quartz.TriggerBuilder;

  import org.quartz.impl.StdSchedulerFactory;

  /**

  * 调用任务的类

  * @author lhy

  *

  */

  public class SchedulerTest {

  public static void main(String[] args) {

  //通过schedulerFactory获取一个调度器

  SchedulerFactory schedulerfactory=new StdSchedulerFactory();

  Scheduler scheduler=null;

  try{

  // 通过schedulerFactory获取一个调度器

  scheduler=schedulerfactory.getScheduler();

  // 创建jobDetail实例,绑定Job实现类

  // 指明job的名称,所在组的名称,以及绑定job类

  JobDetail job=JobBuilder.newJob(MyJob.class).withIdentity(“job1”, “jgroup1”).build();

  // 定义调度触发规则

  // 使用simpleTrigger规则

  // Trigger trigger=TriggerBuilder.newTrigger().withIdentity(“simpleTrigger”, “triggerGroup”)

  // .withSchedule(SimpleScheduleBuilder.repeatSecondlyForever(1).withRepeatCount(8))

  // .startNow().build();

  // 使用cornTrigger规则 每天10点42分

  Trigger trigger=TriggerBuilder.newTrigger().withIdentity(“simpleTrigger”, “triggerGroup”)

  .withSchedule(CronScheduleBuilder.cronSchedule(“0 42 10 * * ? *”))

  .startNow().build();

  // 把作业和触发器注册到任务调度中

  scheduler.scheduleJob(job, trigger);

  // 启动调度

  scheduler.start();

  }catch(Exception e){

  e.printStackTrace();

  }

  }

  }

  package com.test;

  import java.util.Date;

  import org.quartz.CronScheduleBuilder;

  import org.quartz.JobBuilder;

  import org.quartz.JobDetail;

  import org.quartz.Scheduler;

  import org.quartz.SchedulerException;

  import org.quartz.SchedulerFactory;

  import org.quartz.SimpleScheduleBuilder;

  import org.quartz.Trigger;

  import org.quartz.TriggerBuilder;

  import org.quartz.impl.StdSchedulerFactory;

  /**

  * 调用任务的类

  * @author lhy

  *

  */

  public class SchedulerTest {

  public static void main(String[] args) {

  //通过schedulerFactory获取一个调度器

  SchedulerFactory schedulerfactory=new StdSchedulerFactory();

  Scheduler scheduler=null;

  try{

  // 通过schedulerFactory获取一个调度器

  scheduler=schedulerfactory.getScheduler();

  // 创建jobDetail实例,绑定Job实现类

  // 指明job的名称,所在组的名称,以及绑定job类

  JobDetail job=JobBuilder.newJob(MyJob.class).withIdentity(“job1”, “jgroup1”).build();

  // 定义调度触发规则

  // 使用simpleTrigger规则

  // Trigger trigger=TriggerBuilder.newTrigger().withIdentity(“simpleTrigger”, “triggerGroup”)

  // .withSchedule(SimpleScheduleBuilder.repeatSecondlyForever(1).withRepeatCount(8))

  // .startNow().build();

  // 使用cornTrigger规则 每天10点42分

  Trigger trigger=TriggerBuilder.newTrigger().withIdentity(“simpleTrigger”, “triggerGroup”)

  .withSchedule(CronScheduleBuilder.cronSchedule(“0 42 10 * * ? *”))

  .startNow().build();

  // 把作业和触发器注册到任务调度中

  scheduler.scheduleJob(job, trigger);

  // 启动调度

  scheduler.start();

  }catch(Exception e){

  e.printStackTrace();

  }

  }

  }

[1][2][3]

长江后浪催前浪,一辈新人换旧人。

Java任务调度框架Quartz教程

相关文章:

你感兴趣的文章:

标签云: