如何管理Java计时器任务?

时间:2009-10-13 19:15:57

标签: java timer task

我正在寻找有关如何管理多个计时器任务的一些指导。我希望能够动态创建计时器,然后当每个计时器完成时,它将自行重置。

示例:

计时器1   - 执行行动x   - 重置以在30分钟内再次执行操作x

计时器2   - 执行行动y   - 在10分钟内再次重置为动作y

3 个答案:

答案 0 :(得分:5)

你想要的是ScheduledExecutorService

它允许您安排任务在给定时间或以给定速率运行。

答案 1 :(得分:1)

以下代码创建一个计时器,并在500 ms的初始延迟后每1000 ms执行一次。您可以通过这种方式轻松定义两个或多个计时器。

TimerTask task = new TimerTask() {
    @Override
    public void run() {
        System.out.println( "exec" );
    }
};

new Timer().scheduleAtFixedRate( task, 500, 1000 );

答案 2 :(得分:0)

也许值得回顾一下Quartz Enterprise Job Scheduler

  

Quartz是一个功能齐全的开源作业调度系统,可以与最小的独立应用程序集成,或者与几乎任何J2EE或J2SE应用程序一起使用 - 从最小的独立应用程序到最大的电子商务系统。 Quartz可用于创建简单或复杂的计划,以执行数十,数百甚至数万个作业;任务被定义为标准Java组件或EJB的作业。