`
cobble19
  • 浏览: 107151 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

JAVA定时执行

    博客分类:
  • Java
 
阅读更多
LoadResourceTimerTask.java
package cobble.ge.tools;


import java.io.File;
import java.util.Calendar;
import java.util.Date;
import java.util.TimerTask;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;


/**
 * 定时加载配置文件任务。
 *
 */
public class LoadResourceTimerTask extends TimerTask {

    private ServletContext context = null;

    public LoadResourceTimerTask(ServletContext context) {
        this.context = context;
    }

    public void run() {
        try {
            reloadResource();
        } catch (Exception e) {
        }
    }

    /**
     * 自动重载strust配置文件,
     *
     * @param context
     * @throws javax.servlet.ServletException
     */
    public static void reloadResource()
            throws ServletException {
        System.out.println("定时执行,开始时间为: " + new Date());
        try {
            Calendar cal = Calendar.getInstance();
            int year = cal.get(Calendar.YEAR);
            int month = cal.get(Calendar.MONTH);
            System.out.println("当前 年=" + year + " 月=" + month);
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println("定时执行,结束时间为: " + new Date());
    }
}

ReloadResourceListener.java
package cobble.ge.tools;

import java.util.Calendar;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import java.util.Timer;

/**
 * ServletContextListener监听器,重新加载配置文件
 *
 */
public class ReloadResourceListener implements ServletContextListener {

    // 执行任务前的延迟时间,单位是毫秒。
    private static long DELAY = 0l;
    // 执行各后续任务之间的时间间隔,单位是毫秒。
    private static long PERIOD = 30 * 1000l;

    /**
     * 实现ServletContextListener的contextInitialized方法。 安排指定的任务从指定的延迟后开始进行重复的固定延迟执行。
     *
     * @see javax.servlet.ServletContextListener#contextInitialized(javax.servlet.ServletContextEvent)
     */
    public void contextInitialized(ServletContextEvent event) {
        Timer loadResource = new Timer();
        // 获取ServletContext
        ServletContext servletContext = event.getServletContext();
        // 创建一个LoadResourceTimerTask 的实例
        LoadResourceTimerTask loadResourceTimerTask = new LoadResourceTimerTask(servletContext);
        // 将刚创建的TimerTask的实例的运行计划定为:马上开始,每隔30×1000ms运行一次
        Calendar calendar = Calendar.getInstance();
        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH);
        int day = calendar.get(Calendar.DAY_OF_MONTH);
        calendar.set(year, month, day, 10, 00, 00);
        loadResource.scheduleAtFixedRate(loadResourceTimerTask, calendar.getTime(), PERIOD);
    }

    /**
     * 实现ServletContextListener的contextDestroyed方法。
     *
     * @see javax.servlet.ServletContextListener#contextDestroyed(javax.servlet.ServletContextEvent)
     */
    public void contextDestroyed(ServletContextEvent arg0) {
    }
}

web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
	xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

    <listener>
        <listener-class>cobble.ge.tools.ReloadResourceListener</listener-class>
    </listener>
</web-app>
分享到:
评论

相关推荐

    java 定时执行任务

    Java定时执行任务是Java开发中常见的一种需求,用于在特定时间点或按照预设周期执行某段代码。在Java中,有两种主要的方式来实现定时任务:Java.util.Timer类和java.util.concurrent包下的ScheduledExecutorService...

    java定时执行sql语句

    通过配置数据库连接信息和要执行的sql语句,可实现定时执行多个sql语句。 所要执行的语句只能是写死的,可支持sqlserver mysql oracle。 配置说明: config/sys.properties 中指定数据库类型及连接信息,执行间隔...

    JAVA定时运行程序

    ### JAVA定时运行程序知识点解析 #### 一、概述 在Java编程中,实现定时任务是一项常见且实用的功能。本文将详细介绍如何使用`java.util.Timer`类来创建一个能够定时执行特定任务的应用程序。通过分析提供的代码...

    java定时执行代码.

    Java定时执行代码是Java开发中常见的一种需求,用于在特定时间点或按照预设周期执行某段任务。Java提供了多种实现定时任务的机制,这里主要介绍两种:Java.util.Timer类和java.util.concurrent....

    Java定时执行任务的三种方法

    Java定时执行任务是Java开发中常见的一种需求,用于在特定时间执行特定的代码逻辑,例如数据备份、统计分析等。本文将详细介绍Java中三种常见的定时任务实现方式:`java.util.Timer`、`ServletContextListener`以及...

    Java定时执行某个任务

    在Java编程中,定时执行某个任务是一项常见的需求,例如定期备份数据、发送邮件或执行维护操作等。要实现这一功能,Java提供了多种解决方案。这里我们将深入探讨两种主要的方法:Java的`java.util.Timer`类和Java 5...

    java定时执行多任务和quartz定时执行多任务

    Java定时执行多任务是软件开发中的常见需求,用于在特定时间点或按固定频率执行某项操作,例如数据同步、日志清理等。Java提供了一些内置的定时工具,如`java.util.Timer`和`java.util.concurrent....

    java 定时执行

    ### Java定时执行任务详解 #### 一、Java定时任务实现方式概述 在Java中实现定时任务的方法有很多,这里主要介绍一种常见的实现方式:利用`java.util.Timer`类来完成定时任务的调度。`Timer`类提供了多种方法来...

    java 定时执行任务 定时关机 定时重启

    使用Java Swing写的一个小程序,用来定时关机、定时重启、定时执行某一个应用程序。执行时调用cmd命令执行的。其他的,就没什么了,最后用exe4j把jar打包成了exe文件,在本地测能用,不知道其他地方是否能用,内部有...

    java定时运行程序执行方法

    每天可以定时执行一个程序,运行方法,也就是相当于定时器一样.好处就是可以比如平常程序访问量数据量方面比较大的时候,耗时间时你可以把它定时某个访问量或数据量小的时间段运行.

    java定时执行方法&节拍器

    Java定时执行方法与节拍器是程序开发中常见的需求,特别是在服务器端应用或者后台服务中,需要定期执行某些任务,例如数据同步、日志清理、定时推送等。本篇文章将深入探讨Java中如何实现定时执行的方法,并介绍一个...

    JAVA定时运行

    在Java编程中,“JAVA定时运行”主要指通过特定的技术或工具实现在固定时间间隔内执行特定任务的功能。这种技术广泛应用于后台服务、计划任务处理等场景中,例如定时发送邮件、定时备份数据库、定时更新数据等。本文...

    java定时任务,每天定时执行任务

    Java 定时任务,每天定时执行任务 Java 定时任务是指在 Java 语言中实现的定时执行任务的机制,通过使用 Timer 和 TimerTask 两个类,可以实现定时执行任务的功能。在这个例子中,我们将实现每天定时执行任务的功能...

    java 定时备份数据库

    总之,实现Java定时备份MySQL数据库需要理解如何在Java中调用外部命令,如何创建定时任务,以及如何与Spring等框架集成。在SSM项目中,可以利用Spring的定时任务特性来优雅地管理备份任务。记得在实际应用中处理异常...

    java定时关机小程序

    Java定时关机小程序是一种利用Java编程语言实现的实用工具,它可以按照用户设定的时间自动关闭计算机。这个程序在日常生活中或企业环境中非常有用,比如在执行大量计算任务后自动关闭电脑,或者在无人值守时进行系统...

    java定时任务的实现方式

    Java定时任务的实现是软件开发中常见的需求,用于在特定时间执行特定的业务逻辑,例如数据备份、报表生成等。本文将详细介绍两种常用的Java定时任务实现方式:Timer类和Spring框架的Quartz调度器。 首先,第一种...

    java定时器定时调用任务

    这个方法包含了你希望定时执行的代码。 ```java class MyTask extends TimerTask { @Override public void run() { // 这里编写你要定时执行的代码 } } ``` 2. 创建`Timer`实例:接着,你需要创建一个`...

    java 定时 发送 信息类似于闹钟

    综上所述,通过Java的定时任务处理库结合第三方通信库,我们可以构建一个定时发送信息的系统,模拟闹钟功能,定期执行发送任务。根据具体需求,可以选择适合的定时器类,并实现相应的发送逻辑。

Global site tag (gtag.js) - Google Analytics