`

定时器使用Timer,timerTask

    博客分类:
  • java
 
阅读更多
1.每隔10分钟触发
web.xml
<listener>
<listener-class>
com.listener.GoodsListener
</listener-class>
</listener>

Listener里面定义Timer
  public class GoodsListener implements ServletContextListener{
    private Timer daySchedule;
    private static final long time_Delay=1000*60*10;//分钟
public void contextDestroyed(ServletContextEvent arg0) {
daySchedule.cancel();

}

public void contextInitialized(ServletContextEvent arg0) {
daySchedule= new Timer();
daySchedule.schedule(new GoodsTask(), time_Delay);

}

}

GoodsTask 继承TimerTask
public class GoodsTask extends TimerTask {

@Override
public void run() {

//业务处理
}

}

2.每天的6点和12点触发

public class TaskWeekSchedule   implements ServletContextListener{

private Timer WeekScheduleTimer;
// 一天的毫秒数
public static final long PERIOD_DAY = 1000 * 60 * 60 * 24;

@Override
public void contextDestroyed(ServletContextEvent arg0) {
this.
WeekScheduleTimer.cancel();

}

@Override
public void contextInitialized(ServletContextEvent arg0) {
WeekScheduleTimer = new Timer();
//每天在固定的时间点发送信息
WeekScheduleTimer.scheduleAtFixedRate(new TaskWeek(), todayOf6(), PERIOD_DAY);
WeekScheduleTimer.scheduleAtFixedRate(new TaskWeek(), todayOf23(), PERIOD_DAY);
/*WeekScheduleTimer.schedule(new TaskWeek(), todayOf6(), PERIOD_DAY);
WeekScheduleTimer.schedule(new TaskWeek(), todayOf23(), PERIOD_DAY);
*/

}

private Date todayOf6() {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY,6);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
//System.out.print(CharUtil.DateToString4(cal.getTime()));
return cal.getTime();
}

private Date todayOf23() {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 12);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
//System.out.print(CharUtil.DateToString4(cal.getTime()));
return cal.getTime();
}



}


分享到:
评论

相关推荐

    Android中定时器Timer和TimerTask的启动,停止,暂停,继续等操作

    下面是一个在Android中使用定时器Timer和TimerTask的启动,停止,暂停,继续等操作的demo。 需要注意的问题主要有两点: 1、Timer和TimerTask在调用cancel()取消后不能再执行 schedule语句 2、只能在UI主线程中更新...

    JAVA定时器之Timer+TimerTask

    要使用`Timer`和`TimerTask`实现单次定时执行,可以调用`Timer`的`schedule(TimerTask task, long delay)`方法,其中`delay`参数表示延迟执行的时间(以毫秒为单位)。 示例: ```java TimerTask task = new MyTask...

    java定时器(timer类使用详解)

    每个`Timer`实例都关联有一个单独的后台线程,称为"定时器线程",负责执行所有的`TimerTask`。因此,尽管任务本身可以在不同的线程中运行,但调度过程是在同一个线程中进行的。 6. **避免内存泄漏** 当`Timer`...

    Timer和TimerTask的使用

    ### Timer和TimerTask的使用详解 #### 一、引言 `Timer` 和 `TimerTask` 是Java中用于实现定时任务的重要工具。它们提供了一种简单有效的方式来安排任务的执行,既可以一次性执行也可以周期性地执行。这对于实现...

    Timer与TimerTask(计时器)

    下面是一个简单的示例代码,展示了如何使用`Timer`和`TimerTask`: ```java import java.util.Timer; import java.util.TimerTask; public class TimerTaskDemo extends TimerTask { String index; Timer ...

    JAVA中定时器的使用

    JAVA 中提供了多种方式来实现定时器,包括使用 Timer 和 TimerTask 类,使用 ScheduledExecutorService 等。 在 JAVA 中,Timer 和 TimerTask 是两个基本的类,用于实现定时器。Timer 类用于创建一个新的定时器,而...

    java5定时器java Timer

    通过阅读`TimerTest1.java`和`TimerTest2.java`的代码,你可以进一步了解如何在实际项目中使用`Timer`和`TimerTask`来实现特定的定时任务需求。这两个测试类可能包含了创建`Timer`实例、创建`TimerTask`实例以及调度...

    Java 定时器(Timer,TimerTask)详解及实例代码

    它通过`Timer`类和`TimerTask`类的配合使用来实现定时功能。这两个类位于`java.util`包中。 `Timer`类是定时器的管理器,它负责调度任务的执行。创建一个`Timer`实例后,可以通过`schedule`或`scheduleAtFixedRate`...

    Java定时器Timer简述.pdf

    Java定时器Timer是Java编程语言中用于计划执行任务的一种工具类。Timer类主要提供了定时任务的安排执行,对于需要在指定时间后、或者以固定周期重复执行任务的场景非常有用。本文档中介绍的Timer类的实现以及如何...

    Timer定时器的使用方法

    【Timer定时器的使用方法】 在Java编程语言中,`java.util.Timer` 和 `java.util.TimerTask` 类是用于执行定期或延时任务的核心组件。它们允许开发者在指定的时间间隔内执行特定的操作,这对于实现定时任务,如定时...

    Spring定时器TimerTask用法

    **Spring定时器TimerTask用法** 在Java世界中,`java.util.Timer` 和 `java.util.TimerTask` 是用于实现定时任务的基本工具,但它们在多线程环境中的表现并不理想,容易引发内存泄漏。Spring框架提供了更强大的定时...

    java定时器应用 timertask类

    Java定时器应用主要涉及到`Timer`类和`TimerTask`类,这两个类是Java.util包下的,用于实现延时和周期性任务的调度。在Java编程中,有时我们需要执行一些任务,但不希望立即执行,而是希望在特定的时间点或者按照...

    TimerTask与Timer设计时间监控

    `Timer`类主要负责调度任务,可以创建一个定时器实例,然后安排一个或多个`TimerTask`在未来执行。它有两种主要的方法:`schedule(TimerTask task, long delay)`和`schedule(TimerTask task, Date firstTime, long ...

    Java定时器Timer简述共8页.pdf.zip

    如果需要停止整个定时器,使用Timer的cancel()方法。 ```java myTask.cancel(); // 取消单个任务 timer.cancel(); // 关闭定时器,取消所有任务 ``` 5. **线程安全**: Java定时器并不是线程安全的,因此在多...

    android定时器Timer实例

    这就是定时器(Timer)的作用。本篇文章将详细探讨Android中的Timer类以及如何使用它来实现定时任务。 `Timer`类是Java.util包下的一个工具类,它提供了调度任务在未来某个时间点执行的功能。虽然在Android中,我们...

    java定时器Timer

    - 使用`Timer`时需要注意内存泄漏问题,因为`TimerTask`实例如果不被正确取消,可能会导致`Timer`线程无法终止,即使所有非守护线程已经结束。 - 可以通过`Timer.cancel()`方法来取消定时器,这将取消所有已安排但未...

    Java中的Timer和TimerTask的使用.doc

    在Java编程语言中,`Timer`和`TimerTask`是两个关键的类,它们用于创建和管理定时任务。`Timer`类提供了一种机制来安排在未来某一特定时间或以固定间隔执行任务,而`TimerTask`是这些任务的实现基础。 `Timer`类是...

    java定时器timer制作

    Java中定时器(Timer)主要用于执行周期性的任务。通过`java.util.Timer`类,可以创建一个定时器对象,该对象负责调度事件。定时器可以用来执行两种类型的定时任务:一次性任务和周期性任务。 #### 一次性任务 一次...

    java 定时器任务timer 随tomcat启动而启动 同步启动

    我们通常写的timer都是用main方法写的定时器,但同样我们也需要根据服务器启动后定时器也启动的 定时执行任务。不过有个致命伤就是集群方面跟quartz不能比,此方法代码做参考不错,如果要用,那么这个方法在一台...

    Handler和TimerTask实现的简易定时器

    在Java和Android中,常见的定时器实现方式有多种,本示例将聚焦于Handler和TimerTask的结合使用。下面我们将详细探讨这两种机制以及如何通过它们实现一个简易定时器。 首先,Handler是Android中的一个核心组件,...

Global site tag (gtag.js) - Google Analytics