Java 如何限制ScheduledExecutorService

Java 如何限制ScheduledExecutorService,java,multithreading,scheduling,Java,Multithreading,Scheduling,我有以下代码,每20分钟调用一个任务,它工作正常。现在,在这上面,我希望它只在0900到1800之间工作 ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor(); scheduler.scheduleWithFixedDelay(new CSDelightAlertTask(), 0, 20, TimeUnit.MINUTES); 最简单的解决方案是将CSDelightAlertTask

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

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

最简单的解决方案是将
CSDelightAlertTask
包装在一个仅当且仅当时间介于0900和1800之间时才运行基础任务的包装器中。

最简单的解决方案是将
CSDelightAlertTask
包装在一个仅当且仅当时间介于0900和1800之间时才运行基础任务的包装器中和1800。

如果您可以使用外部库,可以帮助您完成这种复杂的调度。如果这是一次性的,可能就不值得了。

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