01
|
public class TimerManager
{
|
04
|
private static final long PERIOD_DAY
= 24 * 60 * 60 * 1000 ;
|
06
|
public TimerManager()
{
|
07
|
Calendar
calendar = Calendar.getInstance();
|
09
|
/***
定制每日2:00执行方法 ***/
|
11
|
calendar.set(Calendar.HOUR_OF_DAY, 2 );
|
12
|
calendar.set(Calendar.MINUTE, 0 );
|
13
|
calendar.set(Calendar.SECOND, 0 );
|
15
|
Date
date=calendar.getTime();
|
19
|
if (date.before( new Date()))
{
|
20
|
date
= this .addDay(date, 1 );
|
23
|
Timer
timer = new Timer();
|
25
|
NFDFlightDataTimerTask
task = new NFDFlightDataTimerTask();
|
27
|
timer.schedule(task,date,PERIOD_DAY);
|
31
|
public Date
addDay(Date date, int num)
{
|
32
|
Calendar
startDT = Calendar.getInstance();
|
33
|
startDT.setTime(date);
|
34
|
startDT.add(Calendar.DAY_OF_MONTH,
num);
|
35
|
return startDT.getTime();
|
在 TimerManager 这个类里面,大家一定要注意 时间点的问题。如果你设定在凌晨2点执行任务。但你是在2点以后
发布的程序或是重启过服务,那这样的情况下,任务会立即执行,而不是等到第二天的凌晨2点执行。为了,避免这种情况
发生,只能判断一下,如果发布或重启服务的时间晚于定时执行任务的时间,就在此基础上加一天。
01
|
public class NFDFlightDataTimerTask extends TimerTask
{
|
03
|
private static Logger
log = Logger.getLogger(NFDFlightDataTimerTask. class );
|
11
|
log.info( "-------------解析信息发生异常--------------" );
|
16
|
public class NFDFlightDataTaskListener implements ServletContextListener
{
|
18
|
public void contextInitialized(ServletContextEvent
event) {
|
22
|
public void contextDestroyed(ServletContextEvent
event) {
|
然后要在web.xml里面配置监听器
3
|
com.listener.NFDFlightDataTaskListener
|
分享到:
相关推荐
在Java开发中,定时任务是常见的需求,用于执行周期性的操作,例如数据同步、日志清理等。Spring框架提供了一套强大的定时任务解决方案,而JDK自带的`TimerTask`类则是实现定时任务的基础工具。本文将深入探讨如何在...
结合以上知识点,我们可以构建一个系统,用户在deviceManage.jsp页面上设定设备的定时任务,后台使用Quartz或者Spring的定时任务功能执行这些任务,同时在页面上实时显示任务执行情况,提供良好的用户交互体验。...
在Java中,`java.util.Timer` 和 `java.util.TimerTask` 类提供了这样的功能,它们是JDK自带的,不需要引入额外的库。 1. **Timer类**: `Timer` 类是一个线程类,它可以安排在将来的某个时间点执行一个或多个任务...
Java定时器,也被称为Java定时任务,是Java编程语言中用于执行预定任务的重要工具。它允许程序员设置在未来某个时间点或按照一定周期执行特定代码,从而实现自动化操作。在Java中,有两个主要类用于实现定时任务:`...
`Timer` 和 `TimerTask` 是Java中用于实现定时任务的重要工具。它们提供了一种简单有效的方式来安排任务的执行,既可以一次性执行也可以周期性地执行。这对于实现定时提醒、定时备份等功能非常有用。 #### 二、...
【Java定时任务详解】 在Java开发中,有时我们需要在特定的时间点或按一定的频率执行某些任务,这时可以利用Java的定时任务功能。本篇将详细讲解如何使用JDK中的`Timer`类和`TimerTask`类来实现定时任务。 1. `...
在Java编程中,我们经常需要执行一些任务,这些任务需要在特定的时间点或者按照一定的间隔重复执行,例如更新进度条、心跳检测、定时发送通知等。`Timer`类就是用来解决这类问题的。 `Timer`类提供了两种类型的任务...
它可以安排任务执行一次,或者定期重复执行,可以看成一个定时器,可以调度TimerTask。Timer可以调度任意多个TimerTask,它会将TimerTask存储在一个队列中,顺序调度。如果想两个TimerTask并发执行,则需要创建两个...
Spring框架提供了多种方式来实现定时任务,其中之一就是整合JDK自带的`TimerTask`。本文将详细介绍如何在Spring中使用`TimerTask`实现定时任务调度。 首先,`TimerTask`是Java标准库中的一个类,它实现了`Runnable`...
`Timer`类主要有两个方法来安排任务执行: 1. `schedule(TimerTask task, long delay)`:这个方法会在指定的延迟(以毫秒为单位)后执行一次任务。例如,如果你传递了1000毫秒作为延迟,那么任务将在创建后1秒执行...
在Java中,定时任务可以使用java.util.Timer和java.util.TimerTask来实现。Timer类用于调度执行任务,而TimerTask类则是任务的抽象类。可以继承TimerTask类来实现自己的定时任务。 在示例代码中,我们定义了一个...
- `schedule(TimerTask task, long delay)`:这是一种固定延迟调度,每次任务执行的延迟会被传递到下一个任务。 - `scheduleAtFixedRate(TimerTask task, long initialDelay, long period)`:这是一种固定速率调度...
Spring框架作为Java领域广泛使用的轻量级框架,提供了与JDK定时器结合以及集成第三方库如Quartz的方式,来实现定时任务。本篇文章将详细探讨“spring+jdk定时器”的实现方式。 首先,我们来看JDK自带的定时器——`...
本篇文章将深入探讨Java中实现定时任务的方法,包括使用JDK内置的`Timer`和`TimerTask`类。 首先,`Timer`类是Java中实现定时任务的核心,它提供了一个后台线程来调度和执行定时任务。`Timer`有四个构造函数,但...
可安排任务执行一次,或者定期重复执行。实际上是个线程,定时调度所拥有的 TimerTasks。TimerTask 是一个抽象类,它的子类由 Timer安排为一次执行或重复执行的任务。实际上就是一个拥有 run 方法的类,需要定时执行...
对象的最后一个实时引用消失并且所有未完成的任务都已完成执行后,定时器的任务执行线程将正常终止(并成为垃圾收集的对象)。此类是线程安全的:多个线程可以共享一个 Timer 对象无需外部同步。 TimerTask 是一项...
"深入理解Java定时调度(Timer)机制" Java定时调度机制是Java中的一种重要机制,它允许开发者在特定时间执行特定的任务。Java中有多种定时调度机制,包括Timer、ScheduledExecutorService等。以下是关于Java定时调度...
2. **基于Java的Timer和TimerTask**:虽然Spring更推荐使用Quartz,但同时它也支持使用JDK自带的`java.util.Timer`和`java.util.TimerTask`。这种方式相对简单,适用于简单的定时任务需求。`Timer`类用于创建定时...
在实际应用中,Java 5引入的`java.util.concurrent`包下的`ScheduledExecutorService`提供了更强大且灵活的定时任务管理功能,例如支持定时器线程池,可以更精确地控制任务执行和取消,以及更好的线程管理和异常处理...
ScheduledExecutorService 类是 JDK 自带的一个类,该类基于线程池设计的定时任务类,每个调度任务都会分配到线程池中的一个线程去执行,也就是说,任务是并发执行,互不影响。ScheduledExecutorService 类提供了...