实现 接口 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>
分享到:
相关推荐
NULL 博文链接:https://zw7534313.iteye.com/blog/419647
Quartz的Hibernate模型 博文链接:https://xmkevinchen.iteye.com/blog/196392
Quartz 是一个开源的作业调度框架,它完全由 Java 写成,并设计用于 J2SE 和 J2EE 应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。本系统结合通过 Spring 来...
微信接口(身份验证,文本、图文回复等) 微信远程控制服务器重启、锁定、其它应用程序 15.java Quartz 定时器 (定时执行某程序,精确到秒,可设置周期) 16.java websocket 即时通讯技术,点对点,群聊,单聊,EXT4...
Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。Jobs可以做成...
微信接口(身份验证,文本、图文回复等) 微信远程控制服务器重启、锁定、其它应用程序 15.java Quartz 定时器 (定时执行某程序,精确到秒,可设置周期) 16.java websocket 即时通讯技术,点对点,群聊,单聊,EXT4...
JBoss jBPM 有直观的流程语言来表示商业流程图的术语比如,任务,异步通讯的等待状态,定时器,自动操作等等.把这些操作绑在一起,, JBoss jBPM 就有了最强大和易扩展性的控制流机制. JBoss jBPM 只有最小的倚赖性可以...
JBoss jBPM 有直观的流程语言来表示商业流程图的术语比如,任务,异步通讯的等待状态,定时器,自动操作等等.把这些操作绑在一起,, JBoss jBPM 就有了最强大和易扩展性的控制流机制. JBoss jBPM 只有最小的倚赖性可以...
JBoss jBPM 有直观的流程语言来表示商业流程图的术语比如,任务,异步通讯的等待状态,定时器,自动操作等等.把这些操作绑在一起,, JBoss jBPM 就有了最强大和易扩展性的控制流机制. JBoss jBPM 只有最小的倚赖性可以...
JBoss jBPM 有直观的流程语言来表示商业流程图的术语比如,任务,异步通讯的等待状态,定时器,自动操作等等.把这些操作绑在一起,JBoss jBPM 就有了最强大和易扩展性的控制流机制. JBoss jBPM 只有最小的倚赖性可以...
JBOSS jBPM拥有直观的流程语言,用任务、异步的等待状态、定时器、自动化动作…等来表示业务流程图,把这些操作绑定在一起,JBOSS jBPM就拥有了非常强大和可扩展的控制流机制。 JBOSS jBPM只有最小的依赖,可以象...
JBoss jBPM 有直观的流程语言来表示商业流程图的术语比如,任务,异步通讯的等待状态,定时器,自动操作等等.把这些操作绑在一起,, JBoss jBPM 就有了最强大和易扩展性的控制流机制. <br>JBoss jBPM 只有最小的倚赖...
JBoss jBPM 有直观的流程语言来表示商业流程图的术语比如,任务,异步通讯的等待状态,定时器,自动操作等等.把这些操作绑在一起,, JBoss jBPM 就有了最强大和易扩展性的控制流机制. <br>JBoss jBPM 只有最小的倚赖...
JBoss jBPM 有直观的流程语言来表示商业流程图的术语比如,任务,异步通讯的等待状态,定时器,自动操作等等.把这些操作绑在一起,, JBoss jBPM 就有了最强大和易扩展性的控制流机制. <br>JBoss jBPM 只有最小的倚赖...
该系统采用J2EE技术开发 ,jdk1.6 数据库:mysql 开发工具myeclipse6.5 服务器:tomcat6.0 系统:vista 整和:struts+hibernate+spring+jbpm 本系统业务流程用工作流(jbpm),数据库持久化采用 hibernate,视图层采用...
基于java的定时器。Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的...