Nik*_*eek 5 java spring asynchronous spring-mvc reactive-programming
我是Spring Reactive Modules的新手.我得到的基本上是,它的核心是反应式编程,我们可以开发端到端的反应式服务.
但是,假设我只想将我的控制器设置为Async,这样我就可以在多个线程上工作并发送"任务已启动"(特别是这个)的回复,让我的工作继续并关闭HTTP链接.
我也了解@EnableAsync并@Async制作方法Async.
如果我只是@Async在我的控制器方法之上使用我想要异步的话.它工作但是,这是一个好习惯吗?我们可以在生产代码中使用它吗?
我没有看到任何问题,@Async因为这将释放请求线程。但这是一个简单的方法,它有很多限制。请注意,如果您想处理反应式流,您没有能够做到这一点的 API。例如,如果一个@Async方法调用另一个方法,则第二个方法不会是异步的。
相反,Webflux 将带来最完整的 API(在 Java 中)以响应式方式处理事物。你不能只用@Async 做什么。例如,使用 Flux,您可以被动地处理或访问多个层,而这是您无法达到的方式。
尽管如此,它会给你带来一个新的宇宙,所以如果你只是想释放请求的线程,你的方法就好了,但如果你需要更多,你将不得不以更复杂的方式处理它。
现在,如果您想响应 HTTP 请求,然后异步执行工作,这不是您想要的。我建议您拥有一个 JMS 提供程序(如 ActiveMQ),您的控制器在其中发送要由作业处理的消息并回答请求。
希望能帮助到你!
| 归档时间: |
|
| 查看次数: |
545 次 |
| 最近记录: |