快速业务通道

彻底理解Spring的定制任务 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22

彻底理解Spring的定制任务

时间:2010-12-26 爬虫工作室

相信做软件的朋友都有这样的经历,我的软件是不是少了点什么东西呢?比如定时任务啊!就拿新闻发布系统来说,如果新闻的数据更新太快,势必涉及一个问题,这些新闻不能由人工的去发布,应该让系统自己发布,这就需要用到定时定制任务了,以前定制任务无非就是设计一个Thread,并且设置运行时间片,让它到了那个时间执行一次,就ok了,让系统启动的时候启动它,想来也够简单的。不过有了spring,我想这事情就更简单了。

看看spring的配置文件,想来就只有这个配置文件了。

XML代码:

< bean  id = "infoCenterAutoBuildTask" class = "com.teesoo.teanet.scheduling.InfoCenterAutoBuildTask" > < property  name = "baseService"  ref = "baseService"  /> < property  name = "htmlCreator"  ref = "htmlCreator"  /> < bean  id = "scheduledTask" class = "org.springframework.scheduling.timer.ScheduledTimerTask" > < property  name = "delay"  value = "10000"  /> < property  name = "period"  value = "1000000"  /> < property  name = "timerTask"  ref = "infoCenterAutoBuildTask"  /> < bean  id = "timerFactory" class = "org.springframework.scheduling.timer.TimerFactoryBean" > < property  name = "scheduledTimerTasks" > < list > < ref  bean = "scheduledTask"  />  

上面三个配置文件中只有一个配置文件是涉及到您自己的class的,其他的都是spring的类。很简单吧!

我们只需要涉及一个class让他继承java.util.TimerTask;

Java代码:

BaseTask extends java.util.TimerTask { //用户只需要实现这个方面,把自己的任务放到这里 public  void run(){ } }

彻底理解Spring的定制任务(2)

时间:2010-12-26 爬虫工作室

下面让我们来看看spring的源代码:

Java代码:

/* * Copyright 2002-2005 the original author or authors. * * Licensed under the Apache License,Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * *   http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing,software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.springframework.scheduling.timer; import java.util.TimerTask; /** * JavaBean that describes a scheduled TimerTask,consisting of * the TimerTask itself (or a Runnable to create a TimerTask for) * and a delay plus period. Period needs to be specified; * there is no point in a default for it. * *

The JDK Timer does not offer more sophisticated scheduling

* options such as cron expressions. Consider using Quartz for * such advanced needs. * *

Note that Timer uses a TimerTask instance that is shared

* between repeated executi

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号