`
morgan-java
  • 浏览: 56380 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Web中的定时操作

阅读更多
Web中的定时操作

1 什么是定时操作
    有些时候我们想做一些在将来的事件内发生的事情的预订,例如,9月18号自动弹出警告,每周五自动查毒等,这都叫做定时操作。

2 普通的定时操作
    在普通的开发环境中,定时操作的处理非常简单,可以使用操作系统自带的task功能来完成。当然最多还是做一个服务,服务中做一个定时器Timer对象,每当Timer被触发的时候做一些相关的操作。

3 Web中的定时操作
常见的Web定时操作,以定时发送mail为例,假如系统要求能够向系统输入一个特定的将来的事件,在这个事件我们向对应的目标mail地址发送一封按照某个模板生成的mail。我们这里不分析发送mail的细节,我们只讨论怎么定时的发送mail。

3.1 Web应用程序的特点
Web应用程序运行在一个特定的web容器中,例如Tomcat或者Websphere,我们这里不WebSphere,Weblogic这些重量级的服务器,应为这些服务器已经提供了功能非常强大的定期功能,只需要你去看文档照着操作就好了,这里我们主要讲解如何在开源类库的支持下完成这些操作。
上面说了Web应用程序运行在Web容器中,那么Web容器停止服务器之后,Web应用程序也就停止了,所以定时器不需持久化,即定发生的任务必须保存在数据库中。
我们回头考虑上面提到的定时发送mail的需求,那么就必须讲定时发送mail的记录保存在数据库中,那么需要把那些跟定时操作相关的信息保存在数据库中呢?首先肯定是定时发送mail的时间,这个是肯定的,但是还有没有其他内容呢,对了,还需要一个关联的信息,如何通过这个定时记录联系到具体的业务。例如这里需要有一个客户id字段,这样子才能联系到对应的客户。

3.2 如何定时发送
Web应用程序有一些特殊的接口,例如:Listener,这个接口的实现类在Web应用程序启动的时候会第一时间启动,而不需要用户通过IE等浏览器点击操作。所以这个类是启动Timer的最佳位置。那么Timer其中之后放在哪里呢?放在Web应用程序的一个叫做Application的范围之内(ServletContext Scope)。定时器设定完成了,这样你就可以在用户每次定义定时发送Mail的时候将定时信息放在数据库中即可,Timer会自动的遍历数据库中的内容,发现事件匹配的时候就会调用具体的操作。

已有的Job Scheduler框架:
例如Quartz (http://www.opensymphony.com/quartz/)
分享到:
评论

相关推荐

    Quartz 定时任务web使用

    Quartz 是一个开源的作业调度框架,常用于Java应用程序中实现定时任务的管理。它提供了丰富的API和功能,使得开发者可以灵活地定义和控制任务的执行。本篇将重点介绍如何在Web环境中集成并使用Quartz,以及相关的...

    Spring定时任务(Web项目)

    Spring框架提供了强大的定时任务支持,使得在Web项目中实现这类功能变得简单易行。本案例将详细介绍如何利用Spring技术来实现定时任务,并提供相关的代码示例。 一、Spring定时任务简介 Spring框架的定时任务功能...

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

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

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

    本文将深入探讨如何使用C#构建一个定时操作的控制台应用程序,这在自动化任务执行、数据同步或者定期备份等场景中非常有用。 首先,我们需要了解C#中的定时器组件。在.NET框架中,有两个主要的定时器类:`System....

    java web定时任务 实例

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

    web 页面 定时关闭

    在Web开发中,有时我们需要实现页面在指定时间后自动关闭的功能,比如在用户完成特定操作之后(例如登录成功、表单提交等),为了提升用户体验或者出于安全性考虑,可以设定页面在几秒钟后自动关闭并返回到上一个...

    web项目中定时删除某指定路径下的文件

    综上所述,实现"web项目中定时删除某指定路径下的文件"这一功能,需要结合定时任务框架、文件操作API、路径处理、权限控制、异常处理、日志记录等多个技术点。在实际开发中,应根据具体的技术栈和业务需求来设计和...

    Python-Devops定时调用http接口定时执行SSH命令的WEB定时任务工具

    本项目名为“Python-Devops定时调用http接口定时执行SSH命令的WEB定时任务工具”,是一个基于Python3开发的解决方案,其核心是利用Flask-APScheduler库来实现定时任务的调度。 Flask是一个轻量级的Python Web框架,...

    java web使用监听器实现定时周期性执行任务demo

    Java Web 使用监听器实现定时周期性执行任务是一种常见的需求,特别是在服务器端需要定期进行某些维护操作,例如数据备份、清理过期数据或者发送通知。在这个"java web使用监听器实现定时周期性执行任务demo"中,...

    quartz定时任务,在web项目中的使用方法

    - 可以使用Quartz的Web界面(如`QuartzNetUI`或自定义的监控页面)来查看和管理任务,包括暂停、恢复、删除等操作。 - 如果是大型项目,还可以考虑使用数据库存储Job和Trigger,以便于集群环境下的高可用性和持久...

    Timer定时任务

    在计算机编程中,定时任务是一项重要的功能,它允许程序在特定的时间间隔或预定的时间点执行特定的操作。Java中的`java.util.Timer`类和`java.util.TimerTask`类为我们提供了实现定时任务的能力。这篇文档将深入探讨...

    WEB应用程序定时执行任务

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

    Spring3.0定时任务简单实例web工程

    在Spring框架中,定时任务是实现自动化操作的重要手段,它允许开发者在特定的时间间隔执行特定的任务,例如数据清理、报表生成等。在本实例中,我们关注的是Spring 3.0版本中的定时任务功能,这是一个基于Web工程的...

    dotNETCore-Extensions-master(包括core定时任务)

    描述中提到“DotNetCore WebApi中使用定时器的例子,其中使用的是TimedJob”,这揭示了项目的一个具体应用场景:在.NET Core构建的Web API服务中实现定时任务。TimedJob可能是作者自定义的一个类或者库,用于处理...

    WEB管理的Quartz定时任务

    在Web管理的Quartz定时任务中,我们通常会结合SpringMVC和MyBatis来构建一个完善的后台管理系统,以便于管理和监控定时任务。下面将详细介绍这个系统的组成部分和实现方式。 **1. Quartz简介** Quartz是Java平台上...

    web页面可配置话的动态生成spring定时任务,持续到化数据库

    本项目将Spring与Quartz相结合,实现了一个Web页面可配置的动态生成Spring定时任务的功能,并能持久化这些任务到数据库中,这在实际业务场景中非常实用。 首先,我们要理解Spring的定时任务是如何工作的。Spring...

    web定时器组件

    2. javax.servlet.Timer接口:在Servlet 3.0及以上版本中引入,允许在Web应用中创建和管理定时任务。它依赖于Servlet容器,如Tomcat或Jetty,因此更适用于Web环境。 3. Quartz Scheduler:一个强大且灵活的开源任务...

    springboot+quartz 动态化配置定时任务

    1. 引入依赖:首先,在`pom.xml`文件中引入SpringBoot的SpringBoot-starter-quartz依赖和相关web库,以便实现页面操作: ```xml <groupId>org.springframework.boot <artifactId>spring-boot-starter-quartz ...

Global site tag (gtag.js) - Google Analytics