1)java.util.Timer 這個方法應該是最常用的,,不過這個方法需要手工啟動你的任務: Timer timer=new Timer(); timer.schedule(new ListByDayTimerTask(),10000,86400000); 這里的ListByDayTimerTask類必須extends TimerTask里面的run()方法。
2)ServletContextListener 這個方法在web容器環(huán)境比較方便,這樣,,在web server啟動后就可以 自動運行該任務,,不需要手工操作,。 將ListByDayListener implements ServletContextListener接口,,在 contextInitialized方法中加入啟動Timer的代碼,在contextDestroyed 方法中加入cancel該Timer的代碼,;然后在web.xml中,,加入listener: <listener> <listener-class>com.qq.customer.ListByDayListener</listener-class> </listener>
3)org.springframework.scheduling.timer.ScheduledTimerTask 如果你用spring,那么你不需要寫Timer類了,,在schedulingContext-timer .xml中加入下面的內容就可以了: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www./dtd/spring-beans.dtd">
<beans> <bean id="timer" class="org.springframework.scheduling.timer.TimerFactoryBean"> <property name="scheduledTimerTasks"> <list> <ref local="MyTimeTask1"/> </list> </property> </bean>
<bean id="MyTimeTask" class="com.qq.timer.ListByDayTimerTask"/>
<bean id="MyTimeTask1" class="org.springframework.scheduling.timer.ScheduledTimerTask"> <property name="timerTask"> <ref bean="MyTimeTask"/> </property> <property name="delay"> <value>10000</value> </property> <property name="period"> <value>86400000</value> </property> </bean> </beans>
|