在Spring java中启动和停止调度任务

时间:2018-03-20 08:00:02

标签: java spring task schedule

我开发了一个简单的Spring Boot应用程序,它使用REST并写入数据库。

我尝试了@Scheduled注释来启动任务以定期运行它。 但是调度过程自动开始,这不是我想要的。 我需要能够从网页启动和停止计划任务。 当用户打开页面时,他必须看到进程的状态:Running / Stoped。

实施它的简单方法是什么?创建一个新线程?如何获得流程状态?将其保存在db?

也许smb有一个从网页启动和停止schedduled任务的例子?

1 个答案:

答案 0 :(得分:0)

尝试使用ScheduledExecutorService。例如,首先创建一个ScheduledExecutorService

ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(Runtime.getRuntime().availableProcessors());

然后创建一个计划任务:

ScheduledFuture<?> task = scheduledExecutorService.scheduleAtFixedRate(
() -> System.out.println("some task"), 0, 30, TimeUnit.SECONDS);

如果要取消该任务,请执行以下操作:

task.cancel(true);