package com.tht.common.job.spring;
import java.util.TimerTask;
import org.apache.log4j.Logger;
/**
* Created by IntelliJ IDEA.
* User: liuwen
* Date: 2010-11-6
* Time: 19:34:49
* To change this template use File | Settings | File Templates.
* 需要执行的任务
*/
public class DemoTask extends TimerTask{
Logger log=Logger.getLogger(DemoTask.class);
/**
* 需要执行的任务写在这里
*/
@Override
public void run() {
log.info("run");
}
}
beans-config.xml 放到src目录下
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="demoTask" class="com.tht.common.job.spring.DemoTask"/><!-- 时钟任务,执行任务时,会调用该类中的 run()方法,来执行。。。 -->
<bean id="scheduledTimerTask"
class="org.springframework.scheduling.timer.ScheduledTimerTask">
<property name="timerTask" ref="demoTask"/>
<property name="period" value="5000"/><!--5000毫秒 即每隔5秒执行定时任务 -->
<property name="delay" value="1000"/><!--1000毫秒 即1秒后 执行定时任务 -->
</bean>
<bean id="timerFactoryBean"
class="org.springframework.scheduling.timer.TimerFactoryBean">
<property name="scheduledTimerTasks">
<list>
<ref bean="scheduledTimerTask"/>
</list>
</property>
</bean>
</beans>
package com.tht.common.job.spring;
import org.apache.log4j.Logger;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Timer;
/**
* Created by IntelliJ IDEA.
* User: liuwen
* Date: 2010-11-6
* Time: 19:43:29
* To change this template use File | Settings | File Templates.
* 启动类,并控制何时关闭时钟任务
*/
public class TimerTaskDemo{
static Logger log=Logger.getLogger(DemoTask.class);
public static void main(String[] args){
ApplicationContext context=new ClassPathXmlApplicationContext("beans-config.xml");
log.info("启动任务。。。。。。");
log.info("请输入exit,关闭任务");
BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
while(true){
try {
if(reader!=null && "exit".equals(reader.readLine())){
break;
}
} catch (IOException e) {
log.error(e.getMessage(), e.fillInStackTrace());
}
}
Timer timer =(Timer)context.getBean("timerFactoryBean");
timer.cancel();
}
}