什么是Quartz ?

Quartz是一个功能丰富开源作业调度库,可以集成到几乎任何Java应用程序中 - 从最小的独立应用程序到最大的电子商务系统。Quartz可用于创建执行数十,数百甚至数十万个作业的简单或复杂的计划; 任务定义为标准Java组件的任务,可以执行任何可以对其进行编程的任何内容。Quartz Scheduler包含许多企业级功能,例如支持JTA事务和集群。

Quartz 接口

  • Scheduler - 调度器,与调度程序进行交互的主要API。
  • Job - 你希望由调度程序执行的组件实现的接口。
  • JobDetail - 用于定义作业的实例,一个具体的类。
  • Trigger -定义给定执行计划作业的组件,通常用于定义作业何时执行。
  • JobBuilder - 用于定义/构建JobDetail实例,定义Job的实例.
  • TriggerBuilder - 用于定义/构建触发器实例.

scheduler 负责管理trigger 调度job 

Quartz 例子

1.首先根据项目要求导入quartz包,项目采用maven构造,

<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>

 

2.建立 quartz.properties 文件

设置可运行线程数量

org.quartz.threadPool.threadCount = 2

 

3.创建HelloWorldJob 类 实现Job接口,实现execute方法,

public void execute(JobExecutionContext context) throws JobExecutionException {
		System.out.println("Job HelloWorld!");
	}

  

4. 创建测试类 QuartzTest.java 

Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();    
            //创建任务 
            JobDetail job = JobBuilder.newJob(HelloWorldJob.class).withIdentity("myJob", "group").build();
            //创建任务触发器 设置任务条件:立刻开始任务,每两秒执行一次,永远执行
            Trigger trigger = TriggerBuilder.newTrigger().withIdentity("myTrigger", "group").startNow()
                    .withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(2).repeatForever())
                    .build();
            //绑定
            scheduler.scheduleJob(job, trigger);
            //开始启动任务
            scheduler.start();
            //休眠10s
            Thread.sleep(10000);
            //结束任务
            scheduler.shutdown();

5.项目运行结果

 

项目源代码:https://github.com/yldzxz/test-quartz.git

 

posted on 2017-05-31 15:00  我哒角落  阅读(119)  评论(0编辑  收藏  举报