如何限制ScheduledExecutorService

时间:2012-02-24 17:32:29

标签: java multithreading scheduling

我有以下代码,每20分钟调用一次任务,并且工作正常。现在,我希望它只能在0900到1800之间工作

ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor();
scheduler.scheduleWithFixedDelay(new CSDelightAlertTask(), 0, 20, TimeUnit.MINUTES);

2 个答案:

答案 0 :(得分:4)

最简单的解决方案只是将CSDelightAlertTask包装在只运行底层任务的包装器中,当且仅当时间在0900和1800之间时。

答案 1 :(得分:0)

如果您可以使用外部库,cron4j可以帮助进行这种复杂的调度。如果这是一次性的话,可能不值得。