`

定时调度

    博客分类:
  • Java
阅读更多
JDK 内建的任务调度工具类有 Timer 和 TimerTask 类,对于简单的任务调度, JDK 的 Timer 就能够胜任。一般来说, Timer 应该随程序启动后一直运行。如果是 web 程序,可以通过 listener 加载 Timer 实例。对于普通的应用程序,需要将 Timer 设置成非后台线程才行。


        来看一个简单的例子:



   

import java.util.Calendar;

import java.util.TimerTask;


public class ATask extends TimerTask{


private static final int TASK_TIME = 20;

private static boolean isRunning = false;

@Override

public void run() {

Calendar c = Calendar.getInstance();

if(!isRunning){

isRunning = true;

if(TASK_TIME == c.get(Calendar.HOUR_OF_DAY)){

doSomeTask();

}

isRunning = false;

}

}


public void doSomeTask(){

try {

Thread.sleep(1000);

System.out.println("ATask has doSomeTask..");

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}


        Atask的任务是在20点的时候doSomeTask(),其中isRunning是用来避免重复调用。

        我们可以在main中调用它:

Timer t = new Timer(false);// false意味不是后台线程,这样主程序不会终止

t.schedule(new ATask(), 0, 500);// Timer在0延迟,每隔500毫秒的用一次 Atask的run方法。





        在spring中,可以通过配置文件设置Timer的延迟、间隔信息,并利用Spring的TimerFactoryBean,建立实际的调度。还是上面的 Atask,可以如下配置Spring文件:

<?xml version="1.0" encoding="UTF-8"?>



<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">



<beans>



<bean id="aTask" class="org.prague.util.ATask">

</bean>



<bean id="scheduledTask" class="org.springframework.scheduling.timer.ScheduledTimerTask">

<property name="delay" value="0"/>

<property name="period" value="1000"/>

<property name="timerTask" ref="aTask"/>

</bean>



<bean id="timerFactory" class="org.springframework.scheduling.timer.TimerFactoryBean">

<property name="scheduledTimerTasks">

<list>

<ref local="scheduledTask"/>

</list>

</property>

<property name="daemon" value="false"/>

</bean>



</beans>

分享到:
评论

相关推荐

    C#定时调度任务服务

    《C#定时调度任务服务构建详解》 在IT行业中,定时调度任务服务是不可或缺的一部分,它使得系统能够按预设的时间间隔自动执行某些任务,提高了工作效率并降低了人为操作的复杂性。本文将深入探讨如何利用C#语言,...

    报表开发工具FineReport决策系统教程之【3】定时调度

    ### 报表开发工具FineReport决策系统教程之【3】定时调度 #### 一、表达式设定 在报表开发工具FineReport中,定时调度是一项重要的功能,它可以帮助用户按照预定的时间周期自动执行某些任务,例如生成报表、发送...

    Spring定时调度简单实现源码

    这个"Spring定时调度简单实现源码"很显然是一个关于如何在Spring中配置和使用定时任务的示例代码包。下面我们将深入探讨Spring的定时调度机制以及其核心组件。 Spring的定时任务调度主要依赖于两个关键组件:`Task...

    定时调度作业 定时管理 自动化

    在IT行业中,定时调度作业是自动化流程中的关键组成部分,它允许系统按照预设的时间间隔执行特定的任务,无需人工干预。这种技术广泛应用于各种场景,如数据备份、日志清理、报表生成、服务监控等。本篇文章将深入...

    数据库配置定时调度

    在IT领域,数据库配置定时调度是一项关键任务,用于自动化执行一系列计划的任务,如数据备份、报表生成、系统维护等。Quartz是一个广泛使用的开源作业调度框架,它允许开发者精确地控制任务的执行时间。本篇文章将...

    定时调度任务说明

    定时调度任务说明

    quartz 2.2.1 定时调度 java

    quartz 2.2.1 定时调度 java 最新版jar

    定时调度器 xxl-job

    【xxl-job定时调度器详解】 xxl-job是一款基于Java实现的分布式任务调度平台,它提供了简单易用的API和管理界面,使得开发者能够轻松地实现任务的定时调度。在这个压缩包中,你将找到xxl-job的核心组件——xxl-job-...

    监听器定时调度实例(很容易学会)

    在IT行业中,定时调度任务是常见的需求,尤其在服务器端应用程序中,用于执行定期维护、数据同步、报表生成等操作。本教程将介绍如何利用监听器实现简单的定时调度实例,适用于Java开发人员,特别是初学者。CSDN...

    Node.js-nodejs定时调度任务

    在Node.js环境中,定时调度任务是一项非常重要的功能,它允许我们按照预定的时间间隔执行特定的任务,比如发送邮件、数据备份、统计分析等。在描述中提到的"nodejs定时调度任务",通常指的是利用Node.js的库或者内建...

    c#任务定时调度系统,无缝对接已有系统

    一、源码描述 通过web端管理任务,操作自动传至任务中心自动执行(支持启动、停止、删除操作),任务支持立即执行,指定时间段执行,支持二次开发,也可对接外部webapi实现和已有系统无缝对接,系统内置Cron表达式...

    spring动态定时调度任务

    在Spring框架中,动态定时调度任务是一个非常实用的功能,它允许根据用户的选择或者系统的实时需求来灵活地调整任务的执行时间。Spring提供了多种方式来实现这一功能,其中Quartz是一个常用的第三方库,它是一个强大...

    Windows服务定时调度结合

    Topshelf是创建Windows服务的另一种方法,老外的一篇文章Create a .NET Windows Service in 5 steps with Topshelf通过5个步骤详细的介绍使用使用Topshelf创建Windows 服务。Topshelf是一个开源的跨平台的宿主服务...

    spring的定时调度

    在IT行业中,Spring框架是Java领域的一个重要组成部分,它提供了丰富的功能,其中之一就是定时调度。Spring的定时调度功能使得开发者能够方便地实现周期性任务,无需深入理解底层复杂的定时器机制。下面,我们将深入...

    kettle定时调度监控方案选型策略

    在本文中,我们将详细探讨Kettle定时调度监控的选型策略,以及实现这些策略时需要考虑的关键因素。 首先,对于Kettle作业的调度监控方式,有三种主流方法:使用Kettle自带的Spoon工具、通过命令行工具pan和kitchen...

    sybase如何在Sybase ASE上定时调度一个存储过程

    Sybase ASE 定时调度存储过程 在 Sybase ASE 环境中,定时调度存储过程是数据库管理员经常需要解决的问题。 Sybase ASE 提供了 Job Scheduler 机制来实现定时调度存储过程,然而,在安装和配置 Job Scheduler 之前...

    Spring quartz定时调度jar包

    Spring Quartz 定时调度是Java应用中广泛使用的任务调度框架,它允许开发者在Spring应用程序上下文中定义和管理定时任务。这个jar包包含了Spring与Quartz的整合,使得开发者能够利用Quartz的强大功能,同时享受...

    Spring中实现定时调度的几种方法

    在本文中,我们将探讨Spring中的两种主要方法:使用Spring Task(也称为Spring的定时调度任务)和集成Quartz组件。 1. **Spring Task(Spring内置定时任务)** Spring Task是Spring框架内置的轻量级定时任务解决...

    HAP框架-定时调度器使用手册.pdf

    【HAP框架定时调度器使用手册】是针对HAP框架中的定时任务管理工具进行详细解析的手册,由胡建平于2016年7月3日创建,并在2020年8月25日进行了最后一次更新。文档旨在帮助用户理解和使用HAP框架中的定时调度器功能,...

    小机环境下设置定时调度DB2存储过程

    为了实现自动化,我们可以利用AIX系统的`crontab`命令来定时调度这些存储过程,以确保在特定时间执行。 首先,我们需要理解`crontab`的工作原理。`crontab`是Unix/Linux系统中用于定时任务调度的一个实用程序。它...

Global site tag (gtag.js) - Google Analytics