目录
官网:http://www.quartz-scheduler.org/
快速使用
官方文档:http://www.quartz-scheduler.org/documentation/quartz-2.3.0/quick-start.html
- 引入依赖:
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.3.2</version>
</dependency>
- 定义job
- 定义触发器
- 让quartz使用trigger调度job
public class QuartzTest {
private static final Logger log = LoggerFactory.getLogger(QuartzTest.class);
public static void main(String[] args) {
try {
//获取Scheduler实例
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
//内部会启动线程 start之后应用不会退出 除非执行shutdown
scheduler.start();
//定义job
JobDetail job = JobBuilder.newJob(HelloJob.class)
.withIdentity("job1", "group1")
.build();
//定义触发器
SimpleTrigger trigger = TriggerBuilder.newTrigger()
.withIdentity("trigger1", "group1")
.startNow()
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(2)
.repeatForever())
.build();
//让quartz使用trigger调度job
scheduler.scheduleJob(job, trigger);
// scheduler.shutdown();
} catch (SchedulerException e) {
e.printStackTrace();
}
}
public static class HelloJob implements Job {
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
log.info("do executing helloJob");
}
}
}
下载
下载的压缩包里面包含了:
- 使用例子
- java文档
- 依赖的jar包
- 源码
配置
官方文档:http://www.quartz-scheduler.org/documentation/quartz-2.3.0/configuration/
quartz.properties
quartz默认使用quartz.properties文件进行配置,被StdSchedulerFactory加载使用,默认从当前工作目录中加载,如果加载不到,则从系统属性org.quartz.properties
指定配置文件加载;如果仍然加载不到则使用jar包里自带的quartz.properties。
或者new StdSchedulerFactory()
加载任意指定的配置文件,必须在getScheduler()
调用之前
教程
监听器
- JobListener
- TriggerListener
- SchedulerListener
触发器 - SimpleScheduleBuilder
- CronScheduleBuilder
常用utils - DateBuilder