从暂停/休眠状态恢复计算机后,如何告诉ScheduledExecutorService忽略重叠的执行

Not*_*aeL 5 java multithreading scheduled-tasks hibernation scheduledexecutorservice

我有一个线程负责每10-15分钟定期刷新一些远程服务查询响应缓存。

问题是,当客户端的计算机从睡眠中恢复时,刷新任务将执行睡眠时间/刷新时间,而不是执行一次。

它不会使服务器或其他任何东西过载,但是效率很低。如何防止这种情况发生?

van*_*kel 3

假设通过ScheduledExecutorService以固定速率调度任务,将任务更改为自调度任务。以这种方式,始终只有 1 个任务等待执行。