`
dingshuangxi888
  • 浏览: 4999 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java 定时 Java:Web应用下实现后台定时任务

    博客分类:
  • java
阅读更多
在WEB应用下实现定时任务的简便方法

  在web方式下,如果我们要实现定期执行某些任务的话,除了用quartz等第三方开源工具外,我们可以使用Timer和TimeTask来完成指定的定时任务:

  第一步:创建一个任务管理类,实现ServletContextListener 接口
package lbs.client.systemservice;

import java.util.Timer;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import org.apache.commons.lang.time.DateUtils;

public class TaskManager implements ServletContextListener {

	//每天的毫秒数
	public static final long PERIOD_DAY = DateUtils.MILLIS_IN_DAY;
	//一周的毫秒数
	public static final long PERIOD_WEEK = PERIOD_DAY * 7;
	//无延迟
	public static final long NO_DELAY = 0;
	//定时器
	private Timer timer;
	
	/**
	 * 在Web应用结束时停止任务
	 */
	public void contextDestroyed(ServletContextEvent sce) {
		timer.cancel();//定时器销毁

	}

	/**
	 * 在Web应用启动时初始化任务
	 */
	public void contextInitialized(ServletContextEvent sce) {
		//定义定时器
		timer = new Timer(true);
		//timer.schedule(new LocationTask(), NO_DELAY, PERIOD_WEEK * 4);
		timer.schedule(new LocationTask(), NO_DELAY, 30000);

	}

}

那么在web服务器启动的时候,任务也被启动,并且会周期性的执行
第二步:创建一个时间任务类
package lbs.client.systemservice;

import java.util.TimerTask;

public class LocationTask extends TimerTask {

	private static boolean isRunning = false;
	@Override
	public void run() {
		if(!isRunning) {
			isRunning = true;
			System.out.println("执行了");

			isRunning = false;
		} else {
			System.out.println("执行错误");
		}

	}

}

第三步:在web中添加一个监听器 xml
  <listener>
  	<listener-class>lbs.client.systemservice.TaskManager</listener-class>
  </listener>
分享到:
评论

相关推荐

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

    2. **定时任务实现**:在`contextInitialized`方法中,我们可以启动一个定时任务,例如使用Java的`ScheduledExecutorService`或者Spring的`@Scheduled`注解。`ScheduledExecutorService`是Java并发库的一部分,可以...

    Spring定时任务实现(非Web项目)

    在Spring框架中,定时任务是通过Spring的Task模块来实现的,这使得在非Web项目中也能方便地进行定时任务的调度。以下是对这个主题的详细讲解。 首先,我们需要了解Spring Task的核心组件: 1. **...

    java web定时任务 实例

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

    java定时任务

    Java定时任务是Java开发中一...了解和掌握这些Java定时任务的知识点,可以帮助开发者构建健壮、可扩展的后台服务,提高系统的自动化程度和效率。在实际项目中,选择哪种方式取决于项目需求、性能要求以及团队的技术栈。

    Spring定时任务(Web项目)

    它提供了基于`@Scheduled`注解和`TaskScheduler`接口的两种定时任务实现方式。`@Scheduled`适用于简单的定时任务,而`TaskScheduler`则更灵活,可以用于复杂的调度需求。 二、@Scheduled注解使用 1. 配置启用定时...

    如何在Web应用中去启动后台的任务

    总结,本文介绍了一种在Web应用中启动后台任务的方法,利用Servlet监听器和Quartz实现任务的自动调度。这种方式使得任务管理和应用的生命周期紧密关联,便于管理和维护。同时,Quartz提供了丰富的调度规则,可以满足...

    Tomcat的定时任务(计时器)

    在Java Web开发中,Tomcat是一个非常流行的开源应用服务器,它用于部署和运行Servlet和JSP应用程序。有时候,我们可能需要在特定的时间执行一些后台任务,例如数据清理、日志归档或者发送邮件等,这时候就需要用到...

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

    对于Web应用程序来说,定时任务常常用于执行一些后台维护工作,如数据清理、统计报告生成等。 首先,我们要了解Spring 3.0中的定时任务是通过Spring的`Task`模块来实现的,这个模块提供了`org.springframework....

    java定时触发任务

    Java定时任务是Java编程中非常常见的一种功能,用于在特定的时间点或按照一定的频率执行某项操作。在Java Web环境中,通常使用两种主要方法来实现定时任务:通过Servlet或者通过ServletContextListener。 首先,...

    在Java Web应用中如何实现任务有效调度

    总结来说,使用Quartz和Struts Action框架,开发者可以方便地在Java Web应用中构建任务调度系统,优化后台任务的执行,提高系统的响应速度和资源利用率,从而提升整体的用户体验。无论是处理复杂的数据报表还是执行...

    后台时间任务的实现(JAVA版)

    在Java编程语言中,后台时间任务的实现是一个重要的功能,特别是在服务器端应用或者需要定期执行某些操作的系统中。这个压缩包中包含的代码可能是基于Java的`java.util.Timer`和`java.util.TimerTask`类来创建定时...

    Timer定时任务

    总的来说,`Timer`和`TimerTask`是Java中实现定时任务的基本工具,它们简单易用,但在多线程环境下需要注意其线程安全性。通过深入理解这些知识点,开发者可以灵活地在项目中实现各种定时需求。不过,对于复杂的定时...

    quartz动态添加、修改和删除定时任务

    在Java应用程序中,Quartz常被用来实现后台任务的自动化执行,比如数据同步、日志清理、发送邮件等。本教程将详细介绍如何动态地在Quartz中添加、修改和删除定时任务,以实现灵活的任务控制。 首先,我们需要理解...

    C#定时调度任务服务

    本文将深入探讨如何利用C#语言,结合Quartz.NET任务调度库以及Log4Net日志框架,构建一个高效、稳定的Windows服务来执行后台定时任务。 首先,我们要理解Quartz.NET的核心概念。Quartz.NET是一款开源的作业调度框架...

    详解SpringBoot 创建定时任务(配合数据库动态执行)

    SpringBoot是一个开源的Java基础框架,...结合Mybatis和MySQL,可以在不重启应用的情况下调整定时任务的执行周期,以适应业务的变化需求。这种机制为复杂的后台任务调度提供了极大的便利,使得任务管理更加高效和可靠。

    基于Spring Boot+Vue.js的后台管理系统,权限管理,字典,配置,定时任务,短信,手机端h5,IDEA 代码生成插件

    web-flash是一个基于Spring Boot和Vue.js的web系统,包含了基于...基于Spring Boot+Vue.js的后台管理系统,权限管理,字典,配置,定时任务,短信,邮件,根据excel模板导出,cms内容管理,手机端h5,IDEA 代码生成插件

    springboot 定时任务加layui的界面版

    综上所述,将SpringBoot的Quartz定时任务与Layui界面结合,不仅可以实现后台任务的自动化,还可以提供直观的管理界面,极大地提高了工作效率。在具体实施过程中,要注意各个组件的正确配置和调用,以及充分考虑系统...

    web定时器组件

    1. ServletContextListener:创建一个实现了ServletContextListener接口的类,重写contextInitialized方法,在Web应用启动时初始化定时任务。 2. Filter:利用Filter,可以在每次请求前或后执行定时任务,但这可能会...

    java quartz计划任务中间件使用教程,每天定时备份数据库的插件jspweb java网站工程.rar

    本教程将深入讲解如何使用Quartz来实现每天定时备份数据库的功能,这对于Java Web应用程序尤其重要,确保数据的安全性和完整性。 1. **Quartz基础知识** - **核心概念**:Quartz主要由Job(任务)、Trigger...

Global site tag (gtag.js) - Google Analytics