gpt4 book ai didi

java - API请求(GET调用)是否可以向客户端返回响应并启动后台任务来完成请求

转载 作者:行者123 更新时间:2023-12-02 09:55:33 25 4
gpt4 key购买 nike

我正在使用 Spring Boot 1.4 和 Java8。我想知道是否有可能在 Controller 中收到对 API 的获取请求。我立即向客户端返回响应,然后为请求创建一个后台任务(处理成功和异常场景)。我知道我们可以使用 completablefuture 进行异步处理,但仍然通过此 API 的 Controller 方法,我们通常在使用 thenapply、异常(exception)或 get 后发送响应。这意味着我们已经产生了一个新线程。主线程仍然不空闲。我正在寻找“一劳永逸”的用例。请提出如何可行的建议。

最佳答案

如评论中所述,您可以使用 Spring 的异步功能。为此,您需要类似的配置

@EnableAsync
@Configuration
public class AsyncConfig {
@Bean
public Executor threadPoolTaskExecutor() {
return new ConcurrentTaskExecutor(Executors.newCachedThreadPool());
}
}

然后将注释放在正在运行后台任务的方法上

@Async
void runBgTask() { /* ... */ }

并在 Controller 方法中调用它

@GetMapping("/foo")
public Foo hello() {
runBgTask();
return new Foo();
}

关于java - API请求(GET调用)是否可以向客户端返回响应并启动后台任务来完成请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56034828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com