quartz入门(一)下载及简单实例

2022-11-30 16:06:52 浏览数 (2)

下载

官网下载地址:http://www.quartz-scheduler.org/ 下载步骤: 1、点击橘黄色的download连接。

2、点击Direct Download下面的Quartz 2.2.1 full distribution (release notes)

3、点击quartz-2.2.1-distribution.tar.gz进行下载,选择两个中的任何一个即可。

4、Maven项目引入

代码语言:javascript复制
<dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz</artifactId>
    <version>2.2.1</version>
</dependency>
<dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz-jobs</artifactId>
    <version>2.2.1</version>
</dependency>

example1

此实例为官方文档中提供的第一个实例,针对此实例,通过注解的形式进行一一说明。目前quartz使用版本为2.2.1。 1、定义任务处理类HelloJob实现Job接口

代码语言:javascript复制
package com.secbro.job;

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

import java.util.Date;

/**
 * 实现Job接口,定义具体运行的任务
 */
public class HelloJob implements Job{

    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        //此处执行的任务就是打印出当前的时间
        System.out.println("Hello World! - "   new Date());
    }
}

2、执行任务的处理类

代码语言:javascript复制
package com.secbro.test;

import com.secbro.job.HelloJob;
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;

import java.util.Date;

/**
 * 执行任务的客户端
 */
public class SimpleExample {
    /**
     * 定义构造方法
     */
    public SimpleExample() {
    }

    public void run() throws SchedulerException {
        // 日志打印,为方便起见,此出替换为控制台打印
        System.out.println("------- Initializing ----------------------");

        // 通过SchedulerFactory获取一个调度器实例
        StdSchedulerFactory sf = new StdSchedulerFactory();
        // 代表一个Quartz的独立运行容器
        Scheduler scheduler = sf.getScheduler();
        System.out.println("------- Initialization Complete -----------");

        // 将返回某一时间点一分钟以后的时间
        Date runtime = DateBuilder.evenMinuteDate(new Date());
        System.out.println("------- Scheduling Job  -------------------");
        // 创建一个JobDetail实例,此版本JobDetail已经作为接口(interface)存在,通过JobBuilder创建
        JobDetail jobDetail = JobBuilder.newJob(HelloJob.class).withIdentity("job1","group1").build();
        // 定义调度规则接口
        Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1","group1").startAt(runtime).build();

        // 添加JobDetail到Scheduler容器中,并且和Trigger进行关联
        scheduler.scheduleJob(jobDetail,trigger);
        System.out.println(jobDetail.getKey()   " will run at: "   runtime);

        scheduler.start();

        System.out.println("------- Started Scheduler -----------------");
        System.out.println("------- Waiting 65 seconds... -------------");

        try {
            Thread.sleep(65000L);
        } catch (Exception var8) {
            ;
        }

        System.out.println("------- Shutting Down ---------------------");
        scheduler.shutdown(true);
        System.out.println("------- Shutdown Complete -----------------");
    }

    public static void main(String[] args) throws Exception {
        SimpleExample example = new SimpleExample();
        example.run();
    }

}

3、执行之后,打印结果如下

代码语言:javascript复制
------- Initializing ----------------------
------- Initialization Complete -----------
------- Scheduling Job  -------------------
group1.job1 will run at: Fri Jun 12 16:37:00 CST 2015
------- Started Scheduler -----------------
------- Waiting 65 seconds... -------------
Hello World! - Fri Jun 12 16:37:00 CST 2015
------- Shutting Down ---------------------
------- Shutdown Complete -----------------

Process finished with exit code 0

其中一下内容为HelloJob定时任务打印信息。

代码语言:javascript复制
Hello World! - Fri Jun 12 16:37:00 CST 2015

至此,Quartz的下载及简单实例已经完成。

0 人点赞