Spring Boot 以编程方式触发@Scheduled方法?

cld4siwp  于 2022-11-23  发布在  Spring
关注(0)|答案(2)|浏览(127)

我正在开发一个Springboot应用程序,它包含一个按计划执行的任务,通常需要两到三分钟。

@Scheduled(cron = "* */30 * * * *")
public void stageOfferUpdates() throws SQLException {
    ...
}

我们需要能够在任何时候通过调用一个rest端点来启动该任务的执行。是否有一种方法可以让我的@GET方法以编程方式启动该任务并立即返回一个http 200 OK

txu3uszq

txu3uszq1#

因此您只想触发一个异步任务而不等待结果,因为您使用的是Spring,the @Async annotation是实现这个目标的一种简单方法。

@Async
public void asyncTask() {
    stageOfferUpdates();
}
gr8qqesn

gr8qqesn2#

你就不能在另一个线程中运行这个方法吗:

executor.execute(() -> {
    stageOfferUpdates();
}

然后继续并返回200?

相关问题