2.编写第一个Quartz任务

来源:互联网 发布:怎么一起网络看电影 编辑:程序博客网 时间:2024/05/29 18:01

Quartz使用,让任务每隔两秒钟打印一次helloworld.

maven依赖

 <dependency>      <groupId>org.quartz-scheduler</groupId>      <artifactId>quartz</artifactId>      <version>2.2.3</version>    </dependency>

1.编写具体job实现类,实现job接口execute方法,具体业务逻辑在此方法中编写。
2.创建一个JobDetail实例,将该实例与job实现类绑定
3.创建一个Trigger实例,定义该job何时触发
4.创建Scheduler实例,调度job和trigger

HelloJob .java

package com.quartz.demo1;import org.quartz.*;import java.text.SimpleDateFormat;import java.util.Date;/** * Created by struggle on 2017/8/10. */public class HelloJob implements Job {    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {         //打印当前的执行时间,格式2017-01-01 00:00:00        //编写具体的业务逻辑        Date date=new Date();        SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        System.out.println("Current Exec Time Is:"+format.format(date));       System.out.println("Hello World!");        JobKey key=jobExecutionContext.getJobDetail().getKey();    }}

HelloScheduler.java

package com.quartz.demo1;import org.quartz.*;import org.quartz.impl.StdSchedulerFactory;import java.text.SimpleDateFormat;import java.util.Date;/** * Created by struggle on 2017/8/10. */public class HelloScheduler {    public static void main(String[] args) throws SchedulerException {        //创建一个JobDetail实例,将该实例与HelloJob Class绑定        JobDetail jobDetail= JobBuilder.newJob(HelloJob.class)                .withIdentity("myJob","group1")                .build();        //创建一个Trigger实例,定义该job立即执行,并且每个        //两秒钟重复执行一次,直到永远        Trigger trigger= TriggerBuilder.newTrigger()                .withIdentity("myTrigger","group1").startNow()                .withSchedule(                        SimpleScheduleBuilder.simpleSchedule()                .withIntervalInSeconds(2).repeatForever()).build();        //创建Scheduler实例        SchedulerFactory schedulerFactory=new StdSchedulerFactory();        Scheduler scheduler=schedulerFactory.getScheduler();        //打印当前时间,格式2017-01-01 00:00:00        Date date=new Date();        SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        System.out.println("Current Time Is:"+format.format(date));        scheduler.start();        scheduler.scheduleJob(jobDetail,trigger);    }}