我有一些任务需要安排。我正在使用ScheduledExecutorService。我有一些要求。
我已将前三个点实施为
//schedule task at fixed delay or at certain time(by calculating the delay)
final ScheduledFuture<?> a = executor.scheduleAtFixedRate(runnableClass,initialDelay, period, TimeUnit.SECONDS);
//end task scheduler if it has executed for certain number of period ( endDelay` by calculting the timestamp to be cancelled)
executor.schedule(new Runnable() {
public void run() {
a.cancel(false);
}
}, endDelay, TimeUnit.SECONDS);
但是我对第4个要求感到困惑,该要求表示如果超过指定的执行时间则取消某个任务。我想取消正在运行的任务只有超时发生而不是未来的预定任务。请提出一些建议。
我使用的是ScheduledExecutorService,不允许使用其他库。