您现在的位置: 天下网吧 >> 网吧天地 >> 天下码农 >> 架构师 >> 正文

JAVA实用技巧:定时执行任务的三种方法

2008-4-8中国网管家族佚名
  1)java.util.Timer 

  这个方法应该是最常用的,不过这个方法需要手工启动你的任务: 

  Timer timer=new Timer(); 

  timer.schedule(new ListByDayTimerTask(),10000,86400000); 

  这里的ListByDayTimerTask类必须extends TimerTask里面的run()方法。 

  2)ServletContextListener 

  这个方法在web容器环境比较方便,这样,在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.springframework.org/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>

欢迎访问最专业的网吧论坛,无盘论坛,网吧经营,网咖管理,网吧专业论坛https://bbs.txwb.com

关注天下网吧微信,了解网吧网咖经营管理,安装维护:


本文来源:中国网管家族 作者:佚名

声明
本文来源地址:0
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。若文章侵犯了您的相关权益,请及时与我们联系,我们会及时处理,感谢您对本站的支持!联系邮箱:support@txwb.com.,本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧 网吧天下
  • 本周热门
  • 本月热门
  • 阅读排行