Quartz 是个开放源码项目,提供了丰富的作业调度集。我目前接触到的quartz只是在我做的Java项目中定时执行任务,我的项目因为是在spring的基础上搭建的想要整合quartz非常的简单。
对于非spring项目的应用,它也很强大因为我没有实际测试过不做介绍。如果有需要的可以查看软件工程师 Michael Lipton 和 IT 架构师 Soobaek Jang 对 Quartz API 进行的介绍。链接地址:用 Quartz 进行作业调度
下面主要说一个quartz在spring项目中的应用
首先添加所需要的jar包:quartz-1.5.2.jar 和spring框架所需要的架包
首先写个一个定时执行任务的类
public class QuartzJob {
public void work()
{
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss.SSS");//时:分:秒:毫秒
System.out.println("Quartz的任务调度"+sdf.format(d));
}
//手动启动测试是否定时任务是否编写成功
public static void main(String[] args) {
String[] configs={"file:D:/Workspaces/MyEclipse 8.5/.metadata/.me_tcat/webapps/zcz_test/WEB-INF/classes/applicationContext-quartz.xml"};
ApplicationContext ac=new ClassPathXmlApplicationContext(configs);
}
}
在写一个spring的配置文件 applicationContext-quartz.xml(名字随便起,但要在web.xml引用)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean />
<bean>
<property ref="testJobDetail" />
<property value="9,18,28,29,39,38,46,43,52,57 * * * * ?" />
</bean>
<bean>
<property ref="testJob" />
<property value="work" />
<property value="false" />
</bean>
<bean lazy-init="false">
<property>
<list>
<ref bean="testTrigger"/>
<!--
<ref bean="iptvCheckTrigger"/>
<ref bean="iptvParseTrigger"/>
<ref bean="IptvUploadTrigger"/>
-->
</list>
</property>
</bean>
</beans>
推荐阅读:
Spring集成Quartz定时任务框架介绍和Cron表达式详解
Spring的Quartz定时器同一时刻重复执行二次的问题解决