`
javaping2008
  • 浏览: 105836 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

定时执行任务

阅读更多

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);// Timer0延迟,每隔500毫秒的用一次 Ataskrun方法。

 

 

        在spring中,可以通过配置文件设置Timer的延迟、间隔信息,并利用SpringTimerFactoryBean,建立实际的调度。还是上面的 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>

 

 

 

分享到:
评论
2 楼 javaping2008 2008-07-30  
由于daemon为false,在主函数中,只需如下

        ApplicationContext ac = new ClassPathXmlApplicationContext("timer-spring.xml");就可以调度任务了。
我的理解是设置为false 说明不是后台进程 主程序不结束
        如果你的Task不想继承 TimerTask,可以通过Spring的MethodInvokingTimerTaskFactoryBean进行设置
1 楼 bruce198 2008-07-30  
<property name="daemon" value="false"/> 


这个value="false" 和 value="true" 有什么区别?

相关推荐

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

    ### Java定时任务实现:每天定时执行任务 #### 一、概述 在Java开发中,定时任务是非常常见的一种需求。例如,需要定期清理数据库中的过期数据、定时发送邮件通知等场景。本文将详细介绍如何利用Java内置的`Timer`...

    易语言定时执行任务可倒计时源码

    资源介绍:。易语言定时执行任务可倒计时源码。时间到了指定时间,就执行某任务。资源作者:。@jxfa0086768。资源界面:。资源下载:。如上述代码有BUG,请查看下图修改。感谢@向前 提供BUG修复源码。

    基于thinkphp5框架的定时执行任务

    本篇文章将深入探讨如何在ThinkPHP5框架中实现定时执行任务,即“基于thinkphp5框架的定时执行任务”。 定时任务在Web应用中扮演着重要的角色,例如数据备份、清理缓存、发送邮件、统计分析等自动化任务,都可以...

    定时执行任务例子 绝对好用

    // 在这里编写需要定时执行的代码 } } public class TimerManager { Timer timer = new Timer(); public void scheduleTask(MyTimerTask task, long delay, long period) { timer.schedule(task, delay, ...

    Quartz.net作业调度自定义定时执行任务多任务执行c#

    在"Quartz.net作业调度自定义定时执行任务多任务执行c#"这个主题中,我们将深入探讨如何使用Quartz.NET来实现自定义的定时任务,以及如何处理多任务执行。 首先,我们需要理解Quartz.NET的基本概念。在Quartz.NET中...

    java 定时执行任务

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

    ThinkPHP实现定时执行任务DEMO

    当我们需要实现定时执行任务时,ThinkPHP框架同样提供了便利的支持。下面我们将详细探讨在ThinkPHP中实现定时任务的两种主要方法。 ### 1. 基于Crontab的定时任务 Crontab是Linux系统中用于设置周期性被执行任务的...

    最好的定时执行任务软件

    在IT领域,定时执行任务是日常操作中非常实用的功能,尤其对于系统管理和自动化流程来说更是不可或缺。"最好的定时执行任务软件"通常指的是那些能够高效、可靠地按照预设时间执行各种任务的应用程序。这类软件可以...

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

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

    python每天定时执行任务

    在Python编程语言中,定时执行任务是一项常见的需求,例如自动备份数据、监控系统状态或运行数据分析等。Python提供了多种方式来实现定时任务,其中最常用的是使用`schedule`库和`APScheduler`库。本教程将围绕这两...

    基于thinkphp框架的定时器(定时执行任务)

    本篇将详细介绍如何在ThinkPHP中设置和使用定时器来定时执行任务。 一、定时任务的概念与作用 定时任务,也称为Cron Job,在服务器环境中常用于定期执行某些脚本或程序,以实现自动化工作流程。ThinkPHP中的定时...

    linux定时执行任务脚本

    在Linux系统中,定时执行任务是一项非常常见的需求,例如定期备份数据、自动更新软件或执行监控任务等。要实现这个功能,我们可以利用Linux的cron服务,它是一个强大的定时任务调度器。本文将深入探讨如何创建和管理...

    JAVA项目服务器启动时自启动指定的Servlet,并定时执行任务

    二、定时执行任务 在Servlet中实现定时任务,我们可以使用Java的定时框架如`java.util.Timer`或`ScheduledExecutorService`(推荐)。以下是一个使用`ScheduledExecutorService`的例子: ```java import java.util....

    ThinkPHP实现定时执行任务DEMO1_v3.2.1

    本DEMO1_v3.2.1 版本是针对 ThinkPHP 3.2.1 版本的一个实例,主要展示了如何在 ThinkPHP 中实现定时执行任务。 在 PHP 开发中,定时任务通常用于自动化执行某些任务,如数据备份、清理缓存、发送邮件等,而无需人工...

    WEB应用程序定时执行任务

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

    树莓派+cron定时执行任务

    ### 树莓派+Cron定时执行任务 #### 1. Cron简介 Cron是一个非常强大的Linux工具,主要用于在固定的时间间隔或特定时刻执行任务。它能够帮助用户实现各种任务的自动化,例如定时备份数据、定时运行脚本等。Cron支持...

    批处理删除 定时删除文件 定时执行任务

    定时执行任务则允许用户设置特定时间运行某个任务,常见于系统维护、数据备份或清理无用文件等场景。 批处理删除的核心在于创建一个包含删除命令的批处理文件。在Windows中,我们可以使用`del`或`rd`命令来删除文件...

    定时执行任务的软件!!

    在IT领域,定时执行任务是自动化工作流程的重要组成部分,它允许用户预设一系列操作并在特定时间自动触发。这种功能在日常使用中非常实用,比如定时备份数据、定时发送邮件、定时开关机等。"定时执行任务的软件"就是...

    windows定时执行任务的工具 System Scheduler free.rar

    总结起来,System Scheduler free是一款优秀的第三方定时任务调度工具,它在Windows Task Scheduler的基础上提供了更多定制化和易用性,对于需要定时执行任务的用户来说,是一个值得尝试的实用工具。

Global site tag (gtag.js) - Google Analytics