gpt4 book ai didi

java - Spring Reactive MVC 与 @EnableAsync

转载 作者:搜寻专家 更新时间:2023-10-31 20:17:12 24 4
gpt4 key购买 nike

我是 Spring Reactive Modules 的新手。我得到的基本上是,它的核心是支持响应式编程,我们可以开发端到端的响应式服务。

但是,假设我只是想让我的 Controller 成为异步的,这样我就可以在多个线程上工作并发送像“任务已启动”这样的回复(不是特别是这个),然后继续我的工作并关闭 HTTP 链接。

我还了解了 @EnableAsync@Async 来创建异步方法。

如果我只是在我想要异步的 Controller 方法上方使用 @Async 怎么办?它奏效了,但是,这是一个好习惯吗?我们可以在生产代码中使用它吗?

最佳答案

我没有发现使用 @Async 有任何问题,因为这将释放请求线程。但这是一种简单的方法,而且有很多局限性。请注意,如果你想处理 react 流,你没有能够做到这一点的 API。例如,如果 @Async 方法调用另一个方法,则第二个方法将不是异步的。

相反,Webflux 将带来最完整的 API(在 Java 中)以 react 方式处理事物。仅使用 @Async 无法做到的事情。例如,使用 Flux,您可以 react 性地处理或访问多个层,而您无法按照自己的方式进行处理。

不过,它会为你带来一个新的宇宙,所以如果你只是想释放请求的线程,你的做法就可以了,但如果你需要更多,你将不得不以更复杂的方式处理它.

现在,如果您想响应 HTTP 请求然后异步执行工作,这不是您想要的。我建议您有一个 JMS 提供程序(如 ActiveMQ),您的 Controller 将消息发送给作业处理并回答请求。

希望对您有所帮助!

关于java - Spring Reactive MVC 与 @EnableAsync,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48107287/

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