我正在使用 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/