`

如何在Web程序中实现定时运行的功能?

阅读更多

定时器在Web中的应用

关键字: java定时器在web中的应用
在web中,定时器的启动一般随web server的启动而启动,一般有两种方法. 

方法一:在web.xml里配置一个Servlet,并设置其随web server的启动而启动。然后在该Servlet的init()方法里启动定时器,在destory()方法里销毁定时器。 
方法二:在web.xml里配置一个Listener,然后在该Listener的初始化方法里启动定时器,在其销毁的方法朝左销毁定时器。 

在servlet中启动定时器 
Xml代码 
  1. import java.io.IOException;      
  2. import java.util.Timer;      
  3. import javax.servlet.RequestDispatcher;      
  4. import javax.servlet.ServletContext;      
  5. import javax.servlet.ServletException;      
  6. import javax.servlet.http.HttpServlet;      
  7. import javax.servlet.http.HttpServletRequest;      
  8. import javax.servlet.http.HttpServletResponse;      
  9.      
  10. import org.apache.commons.lang.StringUtils;      
  11.      
  12. public class ConvergeDataServlet extends HttpServlet {      
  13.      
  14.     private static final long serialVersionUID = 1L;      
  15.      
  16.     private Timer timer1 = null;      
  17.           
  18.     private Task task1;      
  19.           
  20.     /**     
  21.      * Constructor of the object.     
  22.      */     
  23.     public ConvergeDataServlet() {      
  24.         super();      
  25.     }      
  26.      
  27.     /**     
  28.      * Destruction of the servlet.   
  29.     
  30.      */     
  31.     public void destroy() {      
  32.         super.destroy();       
  33.         if(timer1!=null){      
  34.             timer1.cancel();      
  35.         }      
  36.     }      
  37.      
  38.           
  39.     public void doGet(HttpServletRequest request, HttpServletResponse response)      
  40.             throws ServletException, IOException {      
  41.               
  42.     }      
  43.      
  44.           
  45.     public void doPost(HttpServletRequest request, HttpServletResponse response)      
  46.             throws ServletException, IOException {      
  47.         doGet(request, response);             
  48.     }      
  49.      
  50.     // init方法启动定时器      
  51.     public void init() throws ServletException {      
  52.               
  53.         ServletContext context = getServletContext();      
  54.               
  55.         // (true为用定时间刷新缓存)      
  56.         String startTask = getInitParameter("startTask");      
  57.                       
  58.         // 定时刷新时间(分钟)      
  59.         Long delay = Long.parseLong(getInitParameter("delay"));      
  60.               
  61.         // 启动定时器      
  62.         if(startTask.equals("true")){      
  63.             timer1 = new Timer(true);      
  64.             task1 = new Task(context);      
  65.             timer1.schedule(task1, delay * 60 * 1000, delay * 60 * 1000);      
  66.         }      
  67.     }      
  68. }      

定时执行操作 
     
Java代码 
  1. /**    
  2.  *     
  3.  * @author callan    
  4.  */     
  5. import java.util.TimerTask;      
  6.      
  7. import javax.servlet.ServletContext;      
  8.      
  9. public class Task extends TimerTask{      
  10.      
  11.     private ServletContext context;      
  12.           
  13.     private static boolean isRunning = true;      
  14.           
  15.     public Task(ServletContext context){      
  16.         this.context = context;      
  17.     }      
  18.           
  19.               
  20.     @Override     
  21.     public void run() {      
  22.         if(isRunning){      
  23.                 
  24.         }      
  25.     }      
  26.      
  27. }      

在web.xml配置这个servlet为服务启动时就调用servlet 

< servlet > 
     < servlet-name >taskservlet< / servlet-name > 
    < servlet-class >com.task< /servlet-class > 
    < init-param > 
     < param-name >startTask< /param-name > 
     < param-value >true< /param-value > 
    < /init-param > 
    < init-param > 
     < param-name >intervalTime< /param-name > 
     < param-value >1< /param-value > 
    < /init-param > 
    < load-on-startup >300< /load-on-startup > 
  < /servlet > 

分享到:
评论

相关推荐

    c#.net 实现网站定时执行代码

    综上所述,通过C#和`global.asax`,我们可以方便地在ASP.NET Web应用程序中实现定时执行的代码。这种方式适用于那些需要在服务器端按固定时间间隔执行的简单任务。然而,对于更复杂或更频繁的任务,可能需要考虑使用...

    ASP.NET 定时运行

    ASP.NET 定时运行是开发Web应用程序时常用的一种技术,它允许开发者在特定的时间间隔执行某些任务,例如数据清理、发送邮件或者执行自动化的工作流程。本文将深入探讨如何在ASP.NET环境中实现定时运行。 首先,我们...

    .net定时自动运行程序

    在.NET框架中,开发一个定时自动运行的程序可以利用多种技术。主要的焦点是使用定时器组件和计划任务。下面将详细介绍如何实现这样的功能。 首先,`.NET定时自动运行程序`通常涉及到`System.Timers.Timer`类或者`...

    C#定时操作控制台应用程序

    在IT领域,C#是一种广泛使用的编程语言,尤其在开发Windows桌面应用、Web应用以及服务端应用程序时。本文将深入探讨如何使用C#构建一个定时操作的控制台应用程序,这在自动化任务执行、数据同步或者定期备份等场景中...

    WEB应用程序定时执行任务

    WEB应用程序定时执行任务是开发中常见的一种需求,用于在特定时间自动执行某些功能,比如记录系统日志、发送邮件通知等。在这个DEMO中,我们将探讨如何使用C#语言实现这样的功能,即使在网站关闭的情况下也能正常...

    C#实现定时发送邮件功能

    在本示例中,我们关注的是如何利用C#实现一个定时发送邮件的功能。这个功能通常在需要定期向用户发送通知、报告或其他重要信息的场景下非常有用。我们将探讨以下几个关键知识点: 1. **System.Net.Mail**: 这是.NET...

    autoRun自动定时运行

    【标题】"autoRun自动定时运行"涉及到的是在ASP.NET 2.0环境中实现自动定时执行任务的技术。ASP.NET 2.0是微软.NET Framework的一部分,用于构建动态网站和Web应用程序。自动定时运行功能通常用于执行后台任务,如...

    用ASP.NET模拟Windows Service来实现定时提醒之类的功能.pdf

    通过上述方法,可以在无状态的Web环境中,利用ASP.NET Cache机制有效地实现类似于Windows Service的定时任务功能。虽然这种方法可能不如直接使用Windows Service那样强大和灵活,但对于受限于Web环境的开发者而言,...

    WCF服务(SerialPort类实现串口通讯),在web程序中引用

    6. **错误处理和安全性**:在实现过程中,应考虑错误处理和安全性。例如,处理串口无法打开或关闭的情况,确保数据传输的完整性,以及保护服务免受未经授权的访问。 通过以上步骤,我们可以在Web应用程序中利用WCF...

    定时运行服务工具

    在IT行业中,定时运行服务工具是一种非常实用的软件,它能够帮助系统管理员自动化执行一系列定期任务,从而提高工作效率并确保系统的稳定运行。本篇文章将详细探讨"定时运行服务工具"的相关知识点,包括如何同步系统...

    定时开关程序(c#)

    对于那些运行过程中内存占用不断增加且暂时无法优化的程序,这种定时开关功能显得尤为有用,它可以通过定期重启来防止系统资源过度消耗。 要实现这个定时开关程序,我们需要用到C#中的几个关键知识点: 1. **...

    定时传输程序代码

    7. 定时器组件:在Windows Forms应用程序中,可以使用Timer控件来实现定时功能。当Timer的Elapsed事件触发时,执行数据传输的逻辑。可以设置Interval属性以定义时间间隔。 8. 错误处理:为了确保程序的健壮性,需要...

    Spring Boot非Web项目运行的方法

    然而,在某些情况下,我们可能不需要提供Web服务,例如跑定时任务的项目。在这种情况下,我们需要了解如何让Spring Boot项目在非Web模式下运行。 首先,我们需要调整Maven依赖项,不再依赖spring-boot-starter-web...

    javaWeb(四个范围)实现聊天室功能(群聊+私聊)

    - **Application**:在整个Web应用程序运行期间有效,所有用户都可以访问,常用于全局变量或配置信息。 4. **Oracle数据库**: Oracle是一种关系型数据库管理系统,用于存储聊天室的用户信息、聊天记录等数据。在...

    java web定时任务 实例

    Java Web定时任务是Web应用程序中实现周期性操作的关键技术,例如数据备份、清理过期记录、发送邮件通知等。在本实例中,我们将探讨如何在Java Web环境中设置和执行定时任务,以及涉及到的相关技术和工具。 首先,...

    使用Quartz实现定时功能

    ### 使用Quartz实现定时功能 #### 一、Quartz简介 Quartz是一个全面的、开源的作业调度器,...通过对上述核心概念的理解以及示例代码的分析,我们可以更好地掌握如何在Java应用程序中利用Quartz实现定时任务的功能。

    quartz 在WEB中应用小结

    Quartz 是一个开源的作业调度框架,常用于Java Web应用程序中进行定时任务的管理。它提供了高度可配置性,能够灵活地安排、管理和执行任务,是企业级应用中不可或缺的一部分。这篇博客文章“quartz 在WEB中应用小结...

    定时关机windows应用程序

    C#是一种由微软公司推出的面向对象的编程语言,它在.NET框架下运行,具有丰富的类库支持,适合开发各种类型的应用程序,包括桌面应用、Web应用以及移动应用等。对于创建Windows应用程序,C#提供了Windows Forms...

    web定时器的实现思路

    在IT领域,定时任务是许多系统中的重要组成部分,它们用于执行定期或按预定时间间隔运行的任务,例如数据备份、报表生成、系统维护等。...在实现过程中,务必考虑任务的可靠性、可维护性和性能优化。

    C# quartz.net 定时任务源码 可以远程控制

    动态追加DLL是指在程序运行时动态加载外部的动态链接库文件,从而扩展程序的功能。在本例中,可能是通过反射或者其他机制,使定时任务能够加载新的作业类,实现任务的动态扩展。 **安装到Windows服务** 将应用程序...

Global site tag (gtag.js) - Google Analytics