最近项目中使用了定时任务 , 是为了定时查询物流的轨迹 ,现在来解释一下操作步骤.做个测试
首先需要导入依赖:`
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>opensymphony</groupId>
<artifactId>quartz-all</artifactId>
<version>1.6.3</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
<version>2.5.6.SEC03</version>
</dependency>
``spring中使用的是quartzJobBean抽象类, 自定义一个类继承此类. 这里面写你需要定时查询的内容代码.
/**
* 我的定时器
*
* @author dukang
*
*/
public class MyJobBeand extends QuartzJobBean {
private static int timeOut; // 间隔多长时间调度开始 配置文件中指定
private static int i = 0;
@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
long millis = System.currentTimeMillis();
String timeString = sdf.format(millis);
System.out.println("定时任务开启:"+timeString);
}
}
然后开始配置文件: 定义一个工作类,叫做 JobDeatailBean
和触发工作类的触发器 CronTriggerBean,
和用来装触发器的工厂 SchedulerFactoryBean
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- 定义一个工作类 -->
<bean id="job"
class="org.springframework.scheduling.quartz.JobDetailBean">
<property name="jobClass" value="com.MyJobBeand"></property>
<property name="jobDataAsMap">
<map>
<entry key="timeOut" value="10"></entry>
</map>
</property>
</bean>
<!--定义一个触发器出发工作类 -->
<bean id="cronTriggerBean" class="org.springframework.scheduling.quartz.CronTriggerBean" >
<property name="jobDetail" ref="job" ></property>
<property name="cronExpression" value="*/5 * * * * ?"></property>
</bean>
<!--定义一个触发器工厂 -->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="cronTriggerBean"/>
</list>
</property>
</bean>
</beans>