博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
J2EE项目中后台定时运行的程序
阅读量:7019 次
发布时间:2019-06-28

本文共 1743 字,大约阅读时间需要 5 分钟。

本文转载自:

在开发J2EE项目中,有时候需要在后台定时执行一些代码。比如定时对web数据建立倒排索引、定时发送邮件、定时写日志文件。下面将这几段代码总结出来,以备以后使用。

    首先需要继承TimerTask类,覆盖run()方法,将需要定时执行的业务代码写在这个run()方法中:

import java.util.Date;  import java.util.TimerTask;    public class DisplayDate extends TimerTask {        @Override      public void run() {          // TODO Auto-generated method stub          try {              System.out.println(new Date());//定时打印当前时间          } catch (Exception e) {              // TODO: handle exception              e.printStackTrace();          }      }        }

然后需要另外一个类实现ServletContextListener 接口,这个接口能够监听web应用的生命周期。当Servlet 容器启动或终止Web 应用时,会触发ServletContextEvent 事件,该事件由ServletContextListener 来处理。在 ServletContextListener 接口中定义了处理ServletContextEvent事件的两个方法:

 

contextInitialized(ServletContextEvent sce) :当Servlet 容器启动Web 应用时调用该方法。在调用完该方法之后,容器再对Filter 初始化,并且对那些在Web 应用启动时就需要被初始化的Servlet 进行初始化。

contextDestroyed(ServletContextEvent sce) :当Servlet 容器终止Web 应用时调用该方法。在调用该方法之前,容器会先销毁所有的Servlet 和Filter 过滤器。

import java.util.Timer;    import javax.servlet.ServletContextEvent;  import javax.servlet.ServletContextListener;    public class AutoRun implements ServletContextListener {            private Timer timer = null;        public void contextInitialized(ServletContextEvent arg0) {          // TODO Auto-generated method stub          timer=new Timer(true);          timer.schedule(new DisplayDate(),0,1000*3);//延迟0秒,每3秒执行一次DisplayDate()      }            public void contextDestroyed(ServletContextEvent arg0) {          // TODO Auto-generated method stub          timer.cancel();      }    }

 最后就是在web.xml文件中配置,使得该监听器起作用:

com.hh.autorun.AutoRun

完成以上步骤以后,当你启动服务器软件,如tomcat,后台就会定时运行任务了。

转载于:https://www.cnblogs.com/wpcnblog/p/6554267.html

你可能感兴趣的文章
python之字符编码(二)
查看>>
linux常用英文单词记录
查看>>
js中单击和双击事件的区分
查看>>
犯了一个错误
查看>>
python requests的安装与简单运用
查看>>
如何访问嵌套母版页中的控件
查看>>
让你欲罢不能:你心愿我听见了
查看>>
【机器学习】--时间序列算法从初识到应用
查看>>
自定义侧滑菜单
查看>>
js8月-4号,,思想
查看>>
算法竞赛入门经典习题2-10排列
查看>>
MySQL
查看>>
c语音-第零次作业
查看>>
判断一个值是不是DBNull.Value
查看>>
初学者:浅谈web前端就业的学习路线
查看>>
浅读《构建之法》
查看>>
清理鼠标右键多余项(解决桌面鼠标右键迟钝)
查看>>
Django开发—如何重置migration
查看>>
用于.NET环境的时间测试(转)
查看>>
带你剖析WebGis的世界奥秘----Geojson数据加载(高级)(转)
查看>>