一个最简单的 Quartz 列子

来源:互联网 发布:网站关键词优化智搜宝 编辑:程序博客网 时间:2024/06/01 09:10

Quartz 是一个最强大的任务调度框架,基于Java开发,涉及的主要有三个东西


任务  (要执行的业务逻辑 )  触发器 (执行的时间)  调度器(控制执行的控制器)


下面我写了一个最简单的例子,如下


package com.quartz.test.hello;import java.util.Date;import org.quartz.Job;import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;/** * 任务类,每两秒执行一次hello world * @author 星驰太帅了 * */public class HelloJob implements Job{@Overridepublic void execute(JobExecutionContext context) throws JobExecutionException {System.out.println(new Date() + "  :  " + "hello world");}}


package com.quartz.test.hello;import java.util.Date;import org.quartz.JobBuilder;import org.quartz.JobDetail;import org.quartz.Scheduler;import org.quartz.SimpleScheduleBuilder;import org.quartz.Trigger;import org.quartz.TriggerBuilder;import org.quartz.impl.StdSchedulerFactory;/** * 任务调度测试类 * @author 星驰太帅了 * */public class HelloSchedluer {public static void main(String[] args) throws Exception{//绑定job到jobdetail 上JobDetail jobDetail = JobBuilder.newJob(HelloJob.class)  .withIdentity("myJob", "group1") //唯一标记符              .build(); jobDetail.getJobDataMap().put("name", "zxc");//创建一个最简单的触发器Date date = new Date();date.setTime(date.getTime() + 3000); Trigger trigger = TriggerBuilder.newTrigger()          .withIdentity("myTrigger", "group1") //唯一标记符          .startAt(date) //3秒后执行此任务          .withSchedule(SimpleScheduleBuilder.simpleSchedule()  //创建一个简单的调度器                .withIntervalInSeconds(2000)  // 每2秒执行一次                .repeatForever()) // 永远重复执行                    .build();//创建调度器Scheduler scheduler = new StdSchedulerFactory().getScheduler(); // 通过 StdSchedulerFactory 获取一个简单的调度器//绑定调度器要执行的任务和任务的执行逻辑scheduler.scheduleJob(jobDetail, trigger);//开始执行scheduler.start();}}



执行效果为: