这周学习了quartz定时任务,现在进行总结一下。首先要认识定时任务中几个关键接口,以及各个接口之间是如何联系起来的。
1.关键接口
(1)Scheduler,任务调度的API,它可以用来启动或者终止任务等。
(2)Job,具体的任务接口;通过实现它,来让任务调度执行具体的任务。
(3)JobDetail,用来定义Job的实例。
(4)Trigger ,触发器用来定义给定的Job应该如何执行。
(5)JobBuilder ,用来定义/构建Jobdetail实例。
(6)TriggerBuilder ,用来定义/构建Trigger实例。
各个接口之间的联系可以用以下图形解释:
接下来介绍一下,spring与quartz的整合。
(1)首先导入spring与quartz的相关jar包,如下:
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${springframework}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${springframework}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${springframework}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${springframework}</version>
</dependency>
(2)spring.xml文件代码如下:
(3)测试,新建类HelloJob.class,代码如下:
(4)部署项目后启动,控制台输出如下:一分钟输出一次。
(5)如何在job中获取spring的上下文?
代码中使用:
(7)对于cron表达式没有深入理解,可以使用cron表达式在线生成代码。