Tag: scheduledexecutorservice

如何从ScheduledExecutorService中删除任务?

我有一个ScheduledExecutorService,定期用.scheduleAtFixedRate(Runnable, INIT_DELAY, ACTION_DELAY, TimeUnit.SECONDS);定期执行一些不同的任务.scheduleAtFixedRate(Runnable, INIT_DELAY, ACTION_DELAY, TimeUnit.SECONDS); 我也有一个不同的Runnable ,我正在使用这个调度器。 当我想从调度程序中删除其中一个任务时,问题就开始了。 有没有办法做到这一点? 我是否正确地使用一个调度程序来完成不同的任务? 什么是实施这个最好的方法?

scheduleAtFixedRate vs scheduleWithFixedDelay

ScheduledExecutorService的 scheduleAtFixedRate和scheduleWithFixedDelay方法之间的主要区别是什么? scheduler.scheduleAtFixedRate(new Runnable() { @Override public void run() { System.out.println("scheduleAtFixedRate: " + new Date()); } }, 1, 3L , SECONDS); scheduler.scheduleWithFixedDelay(new Runnable() { @Override public void run() { System.out.println("scheduleWithFixedDelay: " + new Date()); } }, 1, 3L , SECONDS); 他们打印确切的同一时间,似乎他们在相同的时间间隔执行。

如何使用ScheduledExecutorService在特定的时间每天运行某些任务?

我正在尝试在凌晨5点每天运行一些任务。 所以我决定使用ScheduledExecutorService ,但是到目前为止,我已经看到了一些例子,说明如何每几分钟运行一次任务。 而且我无法find任何例子,说明如何在早上的特定时间(凌晨5点)每天运行一项任务,同时也考虑夏令时的事实 – 下面是我的代码,每15分钟运行一次 – public class ScheduledTaskExample { private final ScheduledExecutorService scheduler = Executors .newScheduledThreadPool(1); public void startScheduleTask() { /** * not using the taskHandle returned here, but it can be used to cancel * the task, or check if it's done (for recurring tasks, that's not * going to be very […]

如何在基于servlet的Web应用程序中运行后台任务?

我正在使用Java,我想保持一个servlet在我的应用程序不断运行,但我没有得到如何做到这一点。 我的servlet有一个方法,每天从数据库中计算用户的数量,以及整个数据库的用户总数。 所以我想让这个servlet继续运行。