Java知识:Web应用下实现定时任务简便方法

2016-02-19 19:11 5 1 收藏

最近很多朋友喜欢上设计,但是大家却不知道如何去做,别担心有图老师给你解答,史上最全最棒的详细解说让你一看就懂。

【 tulaoshi.com - 编程语言 】

  在WEB应用下实现定时任务的简便方法

  在web方式下,假如我们要实现定期执行某些任务的话,除了用quartz等第三方开源工具外,我们可以使用Timer和TimeTask来完成指定的定时任务:

  第一步:创建一个任务治理类,实现ServletContextListener 接口

  以下是引用片段:

  

public class TaskManager implements ServletContextListener { /**  * 天天的毫秒数  */ public static final long PERIOD_DAY = DateUtils.MILLIS_IN_DAY; /**  * 一周内的毫秒数  */ public static final long PERIOD_WEEK = PERIOD_DAY * 7; /**  * 无延迟  */ public static final long NO_DELAY = 0; /**  * 定时器  */ private Timer timer; /**  * 在Web应用启动时初始化任务  */ public void contextInitialized(ServletContextEvent event) {//定义定时器  timer = new Timer("数据库表备份",true);   //启动备份任务,每月(4个星期)执行一次  timer.schedule(new BackUpTableTask(),NO_DELAY, PERIOD_WEEK * 4);//  timer.schedule(new BackUpTableTask(),NO_DELAY, 30000); } /**  * 在Web应用结束时停止任务  */ public void contextDestroyed(ServletContextEvent event) {  timer.cancel(); // 定时器销毁 }}

  第二步:创建一个时间任务类

  以下是引用片段:

  

public class BackUpTableTask extends TimerTask {  private static Log log = LogFactory.getLog(BackUpTableTask.class);  private static boolean isRunning = false;  public void run() {   if (!isRunning) {isRunning = true;log.debug("开始执行任务..."); //开始任务//working  add what you want to dolog.debug("执行任务完成..."); //任务完成isRunning = false;   } else {log.debug("上一次任务执行还未结束..."); //上一次任务执行还未结束   }  } }

  第三步:在web中添加一个监听器

  以下是引用片段:

  

listener  listener-class***.TaskManager/listener-class  description要定期执行的任务/description /listener

  在web服务器启动的时候,任务也被启动,并且会周期性的执行。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

来源:https://www.tulaoshi.com/n/20160219/1620247.html

延伸阅读
先给一个简单实用的方式(可以打印多页,控制分页,隐藏非打印项目) 看看 .Noprint{display:none;} .PageNext{page-break-after: always;} .tdp { border-bottom: 1 solid #000000; border-left: 1 solid #000000; border-right: 0 solid #ffffff; border-top: 0 solid #ffffff; } .tabp { border-color: #000000 #...
Stripes是一个以让程序员的web开发简单而高效为准则来设计的基于动作的开源Java web框架。本文将介绍Stripes与其它如Struts之类基于动作的框架的区别和其提供的一些存在于Ruby on Rails之中的简单性。 Stripes是一个以让程序员的web开发简单而高效为准则来设计的基于动作的开源Java web框架。传统的Java web开发着眼于借去耦(Decoupl...
http://tailsherry.javaeye.com/blog/176152 熟悉编写JavaScript的人,都习惯在页面写入setTimeOut来实现web页面的定时监控或事务处理。但是如何在Java服务端来实现这样一个监控机制呢?一般大家都会想到线程。但是一直以来,都没有亲身动手实践过。趁着工作间隙,自己也搬出一段代码来,与大家一起分享线程编程的神奇魔力。 &n...
包装器实现 包装器实现是一种将它们的实际工作委托给一个特定 对象集 的实现,它在该 对象集 所提供的功能之上又增加了额外的功能。 对design patterns(设计样式) 爱好者来说,这是一个 decorator(油漆工) 样式。虽然有点异国情调,但确实简单明了。 !-- frame contents -- !-- /frame contents -- ...
数字地球(Digital Earth)实际上是一种地理信息系统(Geographic Information System,以下简称GIS)的面向公众的应用,想比传统的GIS应用,利用数字地球提供的Web Service接口和API,开发人员不需要了解GIS的专业知识和专业技术就可以构建强大的Ajax应用。本文将对数字地球的Web Service的业务应用和技术应用展开讨论,并就目前流行的数字地球...

经验教程

413

收藏

76
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部