改变执行者服务的延迟

时间:2014-02-27 15:20:42

标签: java executorservice

delay = 30;             

scheduler = Executors.newSingleThreadScheduledExecutor();
            scheduler.schedule(new Runnable() {
                public void run() { .... }
            }, delay , TimeUnit.SECONDS);

如果延迟在稍后的某个时间点更改为60,则何时安排作业。在30秒或60秒?

如果我们无法改变延迟,那么最好的方法是什么。我打算调用shutdown(scheduler.shutdown())并以新的延迟调度作业。还有其他方法吗?

1 个答案:

答案 0 :(得分:1)

ScheduledFuture电话中获取ScheduledExecutorService#schedule(..)

如果您需要重新安排,请致电cancel()上的ScheduledFuture,然后使用新的delay重新提交任务。

您的任务可能需要以可以处理中断的方式实现。