1

我有一个需要按计划执行的任务。(它基本上轮询数据库以查找更改,然后根据结果执行代码)。问题是即使轮询任务已经在执行,我也需要它发生。

到目前为止,我已经尝试将 Timer/TimerTask 组合与该scheduleAtFixedRate()方法一起使用,并将 ScheduledThreadPoolExecutor/Thread 组合与该scheduleAtFixedRate()方法一起使用。

两者都等待当前计划任务完成,然后再运行下一个。我需要能够安排一个任务每 5 秒运行一次,并让它运行,即使该任务的最后一次执行尚未完成。

有任何想法吗?

4

1 回答 1

3

如何使用一个Timer作为“启动”计时器,然后使用一个单独的线程池执行:当计时器计时,您将任务提交到线程池以立即执行。(您可能需要调整线程池以同时运行一些最大数量的任务。)

于 2010-09-06T10:14:23.350 回答