如何让一个ScheduledExecutorService运行一个Runnable提前到预定的时间?
How to let a ScheduledExecutorService run a Runnable ahead of the scheduled time?
我正在使用 ScheduledExecutorService
到 运行 一个特定的作业(作为普通的 Runnable
实现)每分钟定期一次(使用方法 scheduleAtFixedDelay()
)。
然而,有时我希望它立即唤醒,调用 Runnable
然后 return 到它的普通策略(即再次等待 1 分钟)。
有没有简单的方法可以做到这一点?
我检查了 ScheduledExecutorService
的 API 及其超类,但到目前为止没有找到合适的。
当然我可以求助于其他一些方法,比如将相同的 Runnable
传递给为特殊目的创建的单独线程,但使用 ScheduledExecutorService
的方法会更优雅。
请记住您打电话给日程安排的ScheduledFuture。
如果您想要提前运行,请调用future.cancel(),再次提交任务立即执行,然后再次安排它。
我正在使用 ScheduledExecutorService
到 运行 一个特定的作业(作为普通的 Runnable
实现)每分钟定期一次(使用方法 scheduleAtFixedDelay()
)。
然而,有时我希望它立即唤醒,调用 Runnable
然后 return 到它的普通策略(即再次等待 1 分钟)。
有没有简单的方法可以做到这一点?
我检查了 ScheduledExecutorService
的 API 及其超类,但到目前为止没有找到合适的。
当然我可以求助于其他一些方法,比如将相同的 Runnable
传递给为特殊目的创建的单独线程,但使用 ScheduledExecutorService
的方法会更优雅。
请记住您打电话给日程安排的ScheduledFuture。
如果您想要提前运行,请调用future.cancel(),再次提交任务立即执行,然后再次安排它。