`
liuting37
  • 浏览: 9745 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

在开发web时 写一个定时器

 
阅读更多

 一、要完成的功能

      web项目中,由于对数据库的大批量数据的添加和删除,往往要求,服务器能在深夜完成对数据库的大量数据操作,此时就需要一个定时器来完成这项任务。

     本次进行的事例为,每天晚上两点将当天的数据插入到数据库中,并将已经过期的数据删除。

二、定时器的应用

2.1定时器的编写

    (1).Timer.Schdeule();

     要注意首先是定义一个Timer这个类型的对象,然后定时就在于它的schedule()方法;schedule()方法如果有三个参数,第一个参数是用来制定定时的事件,第二个参数是用来指定时间第一次发生的时间(可以是从此刻起的延迟时间,也可以是设定的固定时间),第三个参数用来指定循环周期);如果schedule()方法有两个参数,第一个参数是用来指定定时事件,第二个参数用来指定时间发生的时间(可以是从此刻起的延迟时间,也可以是设定的固定时间);

     如果有两个事件要定时发生,继续调用timer的schedule方法,前后不冲突。

     (2).TimerTask

     要定时的事件写在继承TimerTask这个类后,实现run()方法中。

public class timertsk {
    Timer timer;
    public timertsk() throws ParseException {

        timer = new Timer(); 
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        Date date = sdf.parse("2014-06-19 00:02:00");  //固定第一次执行的时间
          timer.schedule(new MyTask(),date,24*3600*1000);  //每天晚上两点执行一次。
//      timer.schedule(new MyTask2(),1000,3000);         //如果有两个定时时间直接写在下面就好了    
    }

    static class MyTask extends TimerTask {             //继承TimerTask类 实例化里头的方法
  
	public void run() {
                  // TODO Auto-generated method stub
	System.out.println("INFO");
			
		}    

        }
    static class MyTask2 extends TimerTask {
    	String info = "second";  
	public void run() {
	// TODO Auto-generated method stub
	System.out.println(info);

        }

    public static void main(String args[]) throws ParseException{
    			new timertsk();
      	
    }
  
}

 

 

2.2定时器在web项目中的配置

 2.2.1启动加载方法

   由于定时器在web项目中,要求在项目启动的时候就将定时器开启。

   需要两步:1、将定时器写在一个Servlet的初始化方法init()中;

                     2、配置web.xml文件,当项目启动后,就加载这个Servlet。

public class TimerDeleteServlet extends HttpServlet {

	/**
	 *@author LT 
	 */
	private static final long serialVersionUID = 1L;
	 
	public void init(){
	
                  new timertsk();

}
	
	protected void doPost(HttpServletRequest req, HttpServletResponse resp){


	}

}

 在web.xml 文件中的配置

  < servlet >
     < servlet-name >taskservlet< / servlet-name >
    < servlet-class >com.task< /servlet-class >
    < load-on-startup >1(数字越小优先级越高)< /load-on-startup >
  < /servlet >

 

 2.2.2监听器方法

 

  监听器的编写

public class MyListen  implements ServletContextListener { 

    private Timer timer = null; 
     
    @Override 
    public void contextDestroyed(ServletContextEvent arg0) { 
        timer.cancel(); 
    } 

    @Override 
    public void contextInitialized(ServletContextEvent arg0) { 
        timer = new Timer(true); 
        //设置任务计划,启动和间隔时间 
        timer.schedule(new MyTask(), 0, 1000 * 10); 
    } 
} 

 

web.xml 中的配置

<listener> 
            <listener-class>com.rx.timer.MyListen</listener-class> 
</listener>

 

分享到:
评论

相关推荐

    web定时器组件

    web定时器组件,该组件为java定时器基本应用程序!

    java定时器结合spring

    项目需要,开发一个简单的定时器,结合spring

    JAVA WEB程序中添加定时器

    绍如何在JAVA WEB程序中添加定时器

    基于epoll的包含线程池、定时器、日志的多进程多线程的WebServer服务器源码.zip

    基于epoll的包含线程池、定时器、日志的多进程多线程的WebServer服务器源码.zip基于epoll的包含线程池、定时器、日志的多进程多线程的WebServer服务器源码.zip基于epoll的包含线程池、定时器、日志的多进程多线程的...

    python 零基础学习篇web前端开发基础JavaScript基础15 定时器 .mp4

    python 零基础学习篇

    Windows服务定时调用WebApi采集数据

    使用.NET4.0开发windows服务(含安装客户端),服务定时采集WebAPI数据,经过处理使用ADO存储到SqlServer数据库。本实列模拟windows服务定时调用WebApi接口,采集第三方的电子处方数据,并提供第三方所需SQL视图,...

    Web服务完整实例构建Web通道(Web服务端) 简单、规范、易学、易用

    ),他在网上的BS开发授课中,为笔者打开了HTML+JS开发之门,看到了另一个世界; FlashSocket的提供者enjoy_lhl,为示例中FlashSocket网页的形成提供了基础资料; getUTF8StrLeng函数的提供者junjie,为该函数的...

    防止页面刷新、定时刷新间隔刷新

    防止页面刷新、定时刷新间隔刷新,web开发中必须知道的几个刷新页面的办法

    如何使用纯PHP实现定时器任务(Timer)

    定时器任务,在WEB应用比较常见,如何使用PHP实现定时器任务,大致有两种方案:1)使用Crontab命令,写一个shell脚本,在脚本中调用PHP文件,然后定期执行该脚本;2)配合使用ignore_user_abort()和set_time_limit()...

    web开发常用js库(效果库、架构库)

    自己写的一个网页开发常用效果库与框架库,可以自定义导出自己想要的部分。 1.通过帮助文档help.html查看所有效果与使用方法。 2.通过config.html配置符合你需要并导出js; 内容包含如下: A:效果库类; 1.事件-...

    2022广工web移动开发实验报告+源码(绩点4.6).zip

    此资料包含广工web移动开发课程的所有实验,其中实验5云开发打开后需要替换为自己的APPID,云数据库建表food,其他均可直接运行,只需修改下学号并截图带有学号的图片即可直接提交报告。(极少数情况打开出错可通过...

    新浪定时器发微博工具

    新浪定时器发微博工具 请自行修改web.config里的三行内容 没有的话,申请地址:http://open.weibo.com/

    Java高手真经 高级编程篇 下载(三)

     Java Web企业级开发技术EJB:包括会话Bean、消息驱动Bean、实体Bean、拦截器、依赖注入、定时器、JPA持久化、JPQL查询语言。  Java Web分布式开发技术:包括JTA事务管理、JAAS验证与授权服务、JNDI命名和目录服务...

    用Timer开发的一个定时任务

    最近公司项目要用到定时任务,因为是通过接口传送数据,所以我就新建了一个web项目,在web.xml配置文件里配置一个监听器,然后该监听器再继承HttpServlet,同时实现ServletContextListener接口,很简单的一个定时...

    React-Native之定时器Timer的实现代码

    在web开发中,我们通常需要使用定时器功能,使用setTimeout和setInterval函数。 那么在ReactNative中,是否也提供了定时器的功能呢? 答案是肯定的。 我们还是先看看官网怎么说的。 定时器是一个应用中非常重要的...

    GETools 4.5.x,强大的VB开发辅助工具

    GETools 4.5.x 是一个基于Visual BASIC及ASP软件开发的ActiveX组件工具集,功能强大且齐全,是VB系软件开发者不可多得的开发伴侣,使用这个工具提供的开发接口,你可以省去大量编写工具函数的时间,达到事半而功倍的...

    监测数据采集物联网应用软件框架(阶段性代码)

    4、定时器插件化开发; 5、串口(COM)通讯开发; 6、TCP/IP Client开发; 7、TCP/IP Server开发; 8、modbus协议开发; 9、程序自动更新开发; 10、web服务开发; 11、python反射机制开发; 12、前端web接口开发及页面开发; ...

    VS2010开发安卓的学习例程源码

    环境: Win7,VS2010,Mono for Android 4.6.07004 完整离线破解版 ...4. release下包含一个可直接在安卓机器上运行的apk。 备注:此例子只是一个学习的例子,仅供新手入门参考,也是我入门做的。也是参考网上例程的。

    Node.js MongoDB AngularJSWeb开发中文版.part1

    注意: Node.js MongoDB AngularJSWeb开发((中文版))pdf 由于文件比较大,次分为三部分上传,下载好三部分之后,放在同一个文件夹下,进行解压即可,另外两部分地址为: part2:...

    使用C++编程的webserver,里面附详细的代码备注

    4.使用定时器链表检测非活跃连接; 5.使用Webbench压力测试,可实现上万的并发连接数据交换; 代码基本上关键部分都加上了备注,源代码是参考的https://www.nowcoder.com/courses上面的课程教学,建议直接看游双老师...

Global site tag (gtag.js) - Google Analytics