在 Spring java 开始和停止调度任务
Start and stop scheduling task in Spring java
我开发了一个简单的 Spring 启动应用程序,它使用 REST 并写入数据库。
我尝试了 @Scheduled
注释来定期向 运行 它发起任务。
但是调度过程自动启动,这并不是我想要的。
我需要能够从网页启动和停止计划任务。
当用户打开页面时,他必须看到进程的状态:Running/Stoped.
实现它的简单方法是什么?创建一个新线程?如何获取进程的状态?将其保存在数据库中?
也许smb有从网页启动和停止定时任务的例子?
尝试使用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);
我开发了一个简单的 Spring 启动应用程序,它使用 REST 并写入数据库。
我尝试了 @Scheduled
注释来定期向 运行 它发起任务。
但是调度过程自动启动,这并不是我想要的。
我需要能够从网页启动和停止计划任务。
当用户打开页面时,他必须看到进程的状态:Running/Stoped.
实现它的简单方法是什么?创建一个新线程?如何获取进程的状态?将其保存在数据库中?
也许smb有从网页启动和停止定时任务的例子?
尝试使用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);