【问题标题】:How do I manage Java timer tasks?如何管理 Java 计时器任务?
【发布时间】:2009-10-13 19:15:56
【问题描述】:

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

例子:

定时器 1 - 执行动作 x - 重置为在 30 分钟内再次执行动作 x

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

【问题讨论】:

    标签: java timer task


    【解决方案1】:

    你想要的是ScheduledExecutorService

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 好吧,我实际上想在上一个任务完成后重新安排任务(以确保它们不重叠)。
      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-02-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-23
        • 2010-11-13
        • 1970-01-01
        相关资源
        最近更新 更多