官网:http://www.quartz-scheduler.org/
一:Quartz使用范例
1.在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.创建实例文件
import java.text.SimpleDateFormat;
import java.util.Date;public class MyJob {
public void run() {
System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
}
}
3.配置applicationContext.xml
<!-- 配置任务类 -->
<bean id="myJob" class="com.wenhao.test1.MyJob">
</bean>
<!-- 配置jobDetail -->
<bean id="myJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 用到的job实例 -->
<property name="targetObject" ref="myJob"/>
<!-- job实例中的方法 -->
<property name="targetMethod" value="run"/>
</bean>
<!-- 配置触发器Trigger -->
<bean id="myTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="myJobDetail"></property>
<property name="cronExpression">
<!-- 每5秒执行一次 -->
<value>0/5 * * * * ?</value>
</property>
</bean>
<!-- 配置scheduler工厂 -->
<bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="myTrigger"/>
</list>
</property>
</bean>
4.创建实现类执行
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class App {
public static void main(String[] args) {
new ClassPathXmlApplicationContext("applicationContext.xml");
}
}
5.运行结果
二:cron 表达式的格式介绍
Quartz cron 表达式的格式十分类似于 UNIX cron 格式,但还是有少许明显的区别。区别之一就是 Quartz 的格式向下支持到秒级别的计划,而 UNIX cron 计划仅支持至分钟级。许多我们的触发计划要基于秒级递增的(例如,每45秒),因此这是一个非常好的差异。
在 UNIX cron 里,要执行的作业(或者说命令)是存放在 cron 表达式中的,在第六个域位置上。Quartz 用 cron 表达式存放执行计划。引用了 cron 表达式的 CronTrigger 在计划的时间里会与 job 关联上。
另一个与 UNIX cron 表达式的不同点是在表达式中支持域的数目。UNIX 给出五个域(分、时、日、月和周),Quartz 提供七个域。表