【发布时间】:2020-11-18 17:06:49
【问题描述】:
我想每小时执行一个任务,但发现Timer只能设置周期。
我的要求是:
- 当我启动计时器时,任务将立即执行。
- 每小时运行一次。如果我在 1:20 启动程序,它将立即执行。下次执行时间是 2:00。接下来是 3:00,以此类推。
- 如果我在 1:20 开始程序,并且在 2:00 没有完成任务,那么 2:00 的任务将被延迟。 1:20的任务完成后,立即执行2:00的任务。
我认为 JDK 的 Timer 只提供 2 个任务之间的时间段。如果我在 1:20 启动程序,第二个只能在 2:20 执行,第三个只能在 3:20 执行。所以我不知道如何实现自定义计时器。
【问题讨论】:
-
到目前为止你做了什么,你面临的问题是什么。看看下面的提示。 stackoverflow.com/questions/7814089/…
-
我使用 Timer.schedule() 方法并将周期设置为 1 小时。如果任务在 1:20 开始,下一个任务将在 2:20 开始,而不是 2:00。第三场将在 3:20 而不是 3:00 开始。