java - 我可以强制执行额外的计划执行吗?

标签 java concurrency scheduledexecutorservice

我有一个 singleThreadExecutor,我正在用这样的 scheduledFixedDelay 提供一个 Runnable

Runnable periodic = new Runnable() { ... }

ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();
executor.scheduleWithFixedDelay(periodic, 1, 1, TimeUnit.MINUTES);

它将在两次执行之间延迟 1 分钟运行。问题是,有时我需要“按需”运行它。这可能吗?

我考虑过取消执行,运行 Runnable 并重新开始执行,但我真正想要的是一些简单的方法,它只是提前执行 Runnable 并重新安排它在一分钟内再次运行。

最佳答案

当你希望任务运行时你可以提交它

executor.submit(periodic);

或延迟添加

executor.schedule(periodic, delay, units);

关于java - 我可以强制执行额外的计划执行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12935481/

相关文章:

java - 取消在 ScheduledExecutorService 中安排的任务可使执行程序保持 Activity 状态

java - 推送或拉取通知

java - 如何将字符数组转换为字符串数组

java - 在 Google App Engine - java 中迭代大量记录并聚合整数属性

java - 使用 String 的大加法

javascript - Promise.map() 进度指示器

java - 限制 SQL Server 2005 中的 SELECT 语句

java - 用@Immutable 注释一个不可变的Java 类有什么好处?

java - 如何在 Junit 中测试 ScheduledExecutorService 异常处理?

java - ScheduledExecutorService - 程序在一次性操作后未结束