Quartz,这是一个功能比较强大的的调度器,可以让你的程序在指定时间执行,也可以按照某一个频度执行.
1. maven 配置:
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
2. 创建普通的java类,不需要继承自任何基类:
public class QuartzTest{
public void doJob() {
System.out.println("调度进行中...");
}
}
3. spring 配置:
<bean id="job"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<bean class="com.QuartzTest" />
</property>
<property name="targetMethod" value="doJob" />
<property name="concurrent" value="false" /><!-- 作业不并发调度 -->
</bean>
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="job" />
<!--每10秒运行一次 -->
<property name="cronExpression" value="0/10 * * * * ?" />
</bean>
<bean id="SpringJobSchedulerFactoryBean"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean" lazy-init="false" autowire="no">
<property name="triggers">
<list>
<ref bean="cronTrigger" />
</list>
</property>
<property name="autoStartup">
<value>true</value>
</property>
</bean>