java - 异步进行一些调用并立即从 Spring Controller 返回

标签 java spring spring-mvc asynchronous spring-boot

我正在使用 Spring Boot,并且我有一个 POST 端点,它需要执行各种操作,例如将对象保存到数据库,然后还调用 3-4 个其他服务。但是,我想在数据库调用持久化后不久返回响应,然后异步调用另一个线程上的其他服务?对其他 3-4 个服务的调用可以最终保持一致(例如,对 eager.io 分析服务的调用)。在 Spring Boot 中如何轻松实现这一点?

最佳答案

我认为你甚至不需要 spring 来完成这项工作。您可以使用 java.util.concurrent.CompletableFuture#runAsync在不同的线程上异步运行某项。

您也可以使用 Spring async support 。只需使用 @Async 注释 spring bean 方法(在您的情况下返回 void)。并且不要忘记通过使用@EnableAsync注释配置类来启用异步支持。 .

关于java - 异步进行一些调用并立即从 Spring Controller 返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38819715/

相关文章:

java - 找不到包 org.springframework.web.servlet

java - Spring mvc maven - 添加库

java - 更新的信息没有反射(reflect)在mysql数据库中

java - Grails 2.4.4 spring安全角色不适用于用户

java - 不支持内容类型 'multipart/form-data;boundary=----...;charset=UTF-8'

java - 如何从 JFrame 中删除 JPanel?

java - 批量保存的 Spring Data JPA 性能问题

java - 由于 IDE Eclipse 中的 "Failed to init ct.sym for C:\Program Files\Java\jre-10.0.2\lib\jrt-fs.jar",该项目未构建

java - 用于标记应同步的对象的属性的配置机制

java - Spring 返回 null ModelAndView 给 DispatcherServlet