我有以下代码,每20分钟调用一次任务,并且工作正常。现在,我希望它只能在0900到1800之间工作
ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor();
scheduler.scheduleWithFixedDelay(new CSDelightAlertTask(), 0, 20, TimeUnit.MINUTES);
答案 0 :(得分:4)
最简单的解决方案只是将CSDelightAlertTask
包装在只运行底层任务的包装器中,当且仅当时间在0900和1800之间时。
答案 1 :(得分:0)
如果您可以使用外部库,cron4j可以帮助进行这种复杂的调度。如果这是一次性的话,可能不值得。