Tomcat设定定时任务

本文介绍了如何在Tomcat中设置定时任务,包括创建Servlet、定义执行类以及配置web.xml来实现在Tomcat启动时自动运行并周期性执行的任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个问题折腾了一天半,简直太笨了我。网上各种资料都一模一样的不能用。


需求是有一个类随着Tomcat启动而开始执行,之后每隔一段时间循环执行。

方法:

1、制作定时任务Servlet,需要用到java.util.Timer:

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.Timer; 
public class ServerRun extends HttpServlet{
	private Timer timer = null; 
    public void init(ServletConfig config) throws ServletException{
        super.init(config);
		timer = new Timer(true); 
		timer.schedule(new Todo(), 0, 1000*60);
    }
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{}
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{}
    public void destroy(){}
}

说明:timer.schedul()这个方法可以设定执行的操作,并设定延迟时间和间隔时间。分别对应括号内的三个参数。在Servlet的init方法中用Timer是为了把这个Servlet加入Tomcat启动项之后能执行Timer。

2、定义Todo类:

import java.util.TimerTask;
public class Todo extends TimerTask{
    @Override
    public void run(){System.out.println("I am running.");//你需要执行的操作}
}

说明:这个类用到了TimerTask,见第一步中schedule中的需要执行的操作,在这里重写他的run方法,在其中定义我的操作。

2、设定web.xml:添加一个随Tomcat启动的类:

    <servlet>
	  <servlet-name>ServerRun</servlet-name>
	  <servlet-class>ServerRun</servlet-class>
	  <load-on-startup>1</load-on-startup>
    </servlet>

说明:修改web.xml关键是有<load-on-startup>这句,可以使<servlet-class>中的类随Tomcat启动而启动。


综上,就可以实现定时循环执行某任务的需求。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值