【问题标题】:Run task periodically in Java using java.util.TimerTask使用 java.util.TimerTask 在 Java 中定期运行任务
【发布时间】:2018-10-05 06:59:40
【问题描述】:

在使用 java.util.TimerTask 调度任务时,我如何确保 run 方法仅在当前执行完成后执行,否则任务队列大小将不断增长,最终任务将始终执行。我是初学者,正在寻求帮助

【问题讨论】:

    标签: java


    【解决方案1】:

    使用ExecutorService#scheduleWithFixedDelay()。这将在当前任务完成时开始“延迟”(而不是scheduleAtFixedRate()

    【讨论】:

      【解决方案2】:

      使用java.util.TimerTimerTask。可以使用这些计时器的两种方法之一:

      • schedule(TimerTask task, long delay, long period)

      • scheduleAtFixedRate(TimerTask task, long delay, long period)

      其中:
      task - 要调度的任务。
      delay - 任务执行前的延迟(毫秒)。
      period - 连续任务执行之间的时间(毫秒)。

      另外,参考这篇文章:What is the difference between schedule and scheduleAtFixedRate?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-09
        • 1970-01-01
        • 2011-04-19
        • 1970-01-01
        • 2014-12-21
        相关资源
        最近更新 更多