`

J2EE 定时器

阅读更多

实现 接口 ServletContextListener
实现 方法 public void contextInitialized(ServletContextEvent sce)
        方法 public void contextDestroyed(ServletContextEvent sce)

参考代码:

package OOS.Travian.Servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Calendar;
import java.util.Timer;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import OOS.Travian.BO.OOS;

public class MainServlet extends HttpServlet implements ServletContextListener {

    private Timer timer = null;
    private Calendar cal=Calendar.getInstance();

    public void contextInitialized(ServletContextEvent arg0) {
        timer = new java.util.Timer(true);
        System.out.println(cal.getTime()+"定时器已启动");
        timer.schedule(new OOS(), 0, 60 * 1000);
        System.out.println(cal.getTime()+"已经添加任务调度表");
       
    }

    public void contextDestroyed(ServletContextEvent arg0) {

        timer.cancel();
        System.out.println(cal.getTime()+"定时器销毁");

    }

}


其中利用了定时器的java.util.Timer.schedule(TimerTask task, long delay, long period)方法,里面的参数依次为:任务类,延时(单位毫秒),周期(单位毫秒)。根据我的设定,每分钟执行一次

然后是业务逻辑类:

package OOS.Travian.BO;

import java.util.TimerTask;


public class OOS extends TimerTask{

    private static boolean isRunning = false;

    public void run() {
        if (!isRunning) {
            isRunning = true;
            System.out.println("开始执行指定任务");
            /* 业务代码 */
            isRunning = false;
            System.out.println("指定任务执行结束");
        } else {
            System.out.println("上一次任务执行还未结束");
        }
    }
   
}


最后是配置侦听器:
在web.xml中添加以下代码,当然Servlet名要换成真实的。


<listener>
<listener-class>OOS.Travian.Servlet.MainServlet</listener-class>
</listener>
分享到:
评论

相关推荐

    Quartz/J2EE (定时服务)

    NULL 博文链接:https://zw7534313.iteye.com/blog/419647

    [Quartz]Quartz定时器的j2ee系统使用

    Quartz的Hibernate模型 博文链接:https://xmkevinchen.iteye.com/blog/196392

    spring 定时器

    Quartz 是一个开源的作业调度框架,它完全由 Java 写成,并设计用于 J2SE 和 J2EE 应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。本系统结合通过 Spring 来...

    J2EE spring mvc mybatis bootstrap HTML5 后台框架 控制台 mysql版本_spring3.0

    微信接口(身份验证,文本、图文回复等) 微信远程控制服务器重启、锁定、其它应用程序 15.java Quartz 定时器 (定时执行某程序,精确到秒,可设置周期) 16.java websocket 即时通讯技术,点对点,群聊,单聊,EXT4...

    Java定时器 quartz jar包

    Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。Jobs可以做成...

    J2EE spring mvc mybatis bootstrap HTML5 后台框架 控制台 oracle版本_spring3.0

    微信接口(身份验证,文本、图文回复等) 微信远程控制服务器重启、锁定、其它应用程序 15.java Quartz 定时器 (定时执行某程序,精确到秒,可设置周期) 16.java websocket 即时通讯技术,点对点,群聊,单聊,EXT4...

    工作流chm手册jbpm3.1

    JBoss jBPM 有直观的流程语言来表示商业流程图的术语比如,任务,异步通讯的等待状态,定时器,自动操作等等.把这些操作绑在一起,, JBoss jBPM 就有了最强大和易扩展性的控制流机制. JBoss jBPM 只有最小的倚赖性可以...

    jBPM中文用户指南 chm格式

    JBoss jBPM 有直观的流程语言来表示商业流程图的术语比如,任务,异步通讯的等待状态,定时器,自动操作等等.把这些操作绑在一起,, JBoss jBPM 就有了最强大和易扩展性的控制流机制. JBoss jBPM 只有最小的倚赖性可以...

    JBPM3.1Help(中文)

    JBoss jBPM 有直观的流程语言来表示商业流程图的术语比如,任务,异步通讯的等待状态,定时器,自动操作等等.把这些操作绑在一起,, JBoss jBPM 就有了最强大和易扩展性的控制流机制. JBoss jBPM 只有最小的倚赖性可以...

    jBoss jBMP.chm

    JBoss jBPM 有直观的流程语言来表示商业流程图的术语比如,任务,异步通讯的等待状态,定时器,自动操作等等.把这些操作绑在一起,JBoss jBPM 就有了最强大和易扩展性的控制流机制. JBoss jBPM 只有最小的倚赖性可以...

    JBPM用户手册

    JBOSS jBPM拥有直观的流程语言,用任务、异步的等待状态、定时器、自动化动作…等来表示业务流程图,把这些操作绑定在一起,JBOSS jBPM就拥有了非常强大和可扩展的控制流机制。 JBOSS jBPM只有最小的依赖,可以象...

    工作流详解

    JBoss jBPM 有直观的流程语言来表示商业流程图的术语比如,任务,异步通讯的等待状态,定时器,自动操作等等.把这些操作绑在一起,, JBoss jBPM 就有了最强大和易扩展性的控制流机制. &lt;br&gt;JBoss jBPM 只有最小的倚赖...

    jbpm教程

    JBoss jBPM 有直观的流程语言来表示商业流程图的术语比如,任务,异步通讯的等待状态,定时器,自动操作等等.把这些操作绑在一起,, JBoss jBPM 就有了最强大和易扩展性的控制流机制. &lt;br&gt;JBoss jBPM 只有最小的倚赖...

    jbpm中文用户指南

    JBoss jBPM 有直观的流程语言来表示商业流程图的术语比如,任务,异步通讯的等待状态,定时器,自动操作等等.把这些操作绑在一起,, JBoss jBPM 就有了最强大和易扩展性的控制流机制. &lt;br&gt;JBoss jBPM 只有最小的倚赖...

    工作流督-办管理

    该系统采用J2EE技术开发 ,jdk1.6 数据库:mysql 开发工具myeclipse6.5 服务器:tomcat6.0 系统:vista 整和:struts+hibernate+spring+jbpm 本系统业务流程用工作流(jbpm),数据库持久化采用 hibernate,视图层采用...

    Quartz-2.2.3-distribution

    基于java的定时器。Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的...

Global site tag (gtag.js) - Google Analytics