java定时器(不废话,直接讲例子)

本文介绍了一个基于Java的定时任务实现方案,通过Timer和TimerTask组件完成邮件的定时发送功能,并详细展示了如何在web.xml中配置监听器以确保定时任务随Tomcat启动而激活。
 

该类继承timerTask 里面的run方法写具体的方法比如调用数据库之类的

package com.sys.tasktimer;
import java.util.TimerTask;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
public class TimerSendEmail extends TimerTask {
 public TimerSendEmail() {
  super();
  // TODO Auto-generated constructor stub
 }
 private static final int C_SCHEDULE_HOUR = 3;// 这个代表3点钟的时候执行任务
 private static boolean isRunning = false;
 private ServletContext context = null;
 public TimerSendEmail(ServletContext context) {
  this.context = context;
 }
 public void run() {
   System.out.println("===================");
 }
 public void init() throws ServletException {
  // Put your code here
 }
}
该类是监听类,这个类需要在web.xml里面配置,从而在tomcat启动的时候去调用

package com.sys.tasktimer;

import java.util.Timer;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.http.HttpServlet;

public class TimerSendEmailListener extends HttpServlet implements ServletContextListener {
    private Timer timer = null;
    public void contextInitialized(ServletContextEvent event) {
      timer = new Timer(true);
      event.getServletContext().log("发送邮件定时器已启动");
      timer.schedule(new TimerSendEmail(event.getServletContext()),0,1000); //0表示tomcat启动的时候运行切不延迟,1000表示运行周期为1秒

 event.getServletContext().log("发送邮件已经添加任务调度表");
    }
    public void contextDestroyed(ServletContextEvent event) {
      timer.cancel();
      System.out.println("发送邮件定时器销毁");
      event.getServletContext().log("发送邮件定时器销毁");
    }
}
web.xml配置如下,配置TimerSendEmailListener 这个类

 <listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
 </listener>
 <listener>
<listener-class>com.sys.tasktimer.TimerSendEmailListener</listener-class>
</listener>

说明:这个例子拿下来可以直接用

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值