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>
分享到:
相关推荐
### Java定时任务实现:每天定时执行任务 #### 一、概述 在Java开发中,定时任务是非常常见的一种需求。例如,需要定期清理数据库中的过期数据、定时发送邮件通知等场景。本文将详细介绍如何利用Java内置的`Timer`...
资源介绍:。易语言定时执行任务可倒计时源码。时间到了指定时间,就执行某任务。资源作者:。@jxfa0086768。资源界面:。资源下载:。如上述代码有BUG,请查看下图修改。感谢@向前 提供BUG修复源码。
本篇文章将深入探讨如何在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来实现自定义的定时任务,以及如何处理多任务执行。 首先,我们需要理解Quartz.NET的基本概念。在Quartz.NET中...
Java定时执行任务是Java开发中常见的一种需求,用于在特定时间点或按照预设周期执行某段代码。在Java中,有两种主要的方式来实现定时任务:Java.util.Timer类和java.util.concurrent包下的ScheduledExecutorService...
当我们需要实现定时执行任务时,ThinkPHP框架同样提供了便利的支持。下面我们将详细探讨在ThinkPHP中实现定时任务的两种主要方法。 ### 1. 基于Crontab的定时任务 Crontab是Linux系统中用于设置周期性被执行任务的...
在IT领域,定时执行任务是日常操作中非常实用的功能,尤其对于系统管理和自动化流程来说更是不可或缺。"最好的定时执行任务软件"通常指的是那些能够高效、可靠地按照预设时间执行各种任务的应用程序。这类软件可以...
Java定时执行任务是Java开发中常见的一种需求,用于在特定时间执行特定的代码逻辑,例如数据备份、统计分析等。本文将详细介绍Java中三种常见的定时任务实现方式:`java.util.Timer`、`ServletContextListener`以及...
在Python编程语言中,定时执行任务是一项常见的需求,例如自动备份数据、监控系统状态或运行数据分析等。Python提供了多种方式来实现定时任务,其中最常用的是使用`schedule`库和`APScheduler`库。本教程将围绕这两...
本篇将详细介绍如何在ThinkPHP中设置和使用定时器来定时执行任务。 一、定时任务的概念与作用 定时任务,也称为Cron Job,在服务器环境中常用于定期执行某些脚本或程序,以实现自动化工作流程。ThinkPHP中的定时...
在Linux系统中,定时执行任务是一项非常常见的需求,例如定期备份数据、自动更新软件或执行监控任务等。要实现这个功能,我们可以利用Linux的cron服务,它是一个强大的定时任务调度器。本文将深入探讨如何创建和管理...
二、定时执行任务 在Servlet中实现定时任务,我们可以使用Java的定时框架如`java.util.Timer`或`ScheduledExecutorService`(推荐)。以下是一个使用`ScheduledExecutorService`的例子: ```java import java.util....
本DEMO1_v3.2.1 版本是针对 ThinkPHP 3.2.1 版本的一个实例,主要展示了如何在 ThinkPHP 中实现定时执行任务。 在 PHP 开发中,定时任务通常用于自动化执行某些任务,如数据备份、清理缓存、发送邮件等,而无需人工...
WEB应用程序定时执行任务是开发中常见的一种需求,用于在特定时间自动执行某些功能,比如记录系统日志、发送邮件通知等。在这个DEMO中,我们将探讨如何使用C#语言实现这样的功能,即使在网站关闭的情况下也能正常...
### 树莓派+Cron定时执行任务 #### 1. Cron简介 Cron是一个非常强大的Linux工具,主要用于在固定的时间间隔或特定时刻执行任务。它能够帮助用户实现各种任务的自动化,例如定时备份数据、定时运行脚本等。Cron支持...
定时执行任务则允许用户设置特定时间运行某个任务,常见于系统维护、数据备份或清理无用文件等场景。 批处理删除的核心在于创建一个包含删除命令的批处理文件。在Windows中,我们可以使用`del`或`rd`命令来删除文件...
在IT领域,定时执行任务是自动化工作流程的重要组成部分,它允许用户预设一系列操作并在特定时间自动触发。这种功能在日常使用中非常实用,比如定时备份数据、定时发送邮件、定时开关机等。"定时执行任务的软件"就是...
总结起来,System Scheduler free是一款优秀的第三方定时任务调度工具,它在Windows Task Scheduler的基础上提供了更多定制化和易用性,对于需要定时执行任务的用户来说,是一个值得尝试的实用工具。