【发布时间】:2014-02-21 22:04:10
【问题描述】:
我有一个服务器端应用程序,客户端可以请求重新加载配置。如果客户端请求重新加载配置,这不应该立即完成,而是延迟 1 分钟。如果另一个客户端也在同一分钟内请求重新加载配置,则应忽略此请求。
我的想法是使用 ScheduledExecutorService 来安排任务,例如:
ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor();
service.schedule(new LoadConfigurationTask(), 1, TimeUnit.MINUTES);
public class LoadConfigurationTask Runnable {
public void run() {
// LoadConfiguration
}
}
如何检查 LoadConfigurationTask 是否已计划但尚未执行,以便能够在重新加载配置之前忽略进一步的请求?
【问题讨论】:
-
如果重新加载配置任务正在运行怎么办 - 是否也应该忽略另一个请求?如果任务在 1 毫秒前完成怎么办?
-
否,如果正在运行,应该安排新任务
标签: java multithreading timer singleton