我使用的是Spring Boot,我有一个POST端点,它需要做各种事情,比如将对象持久化到数据库,然后调用3-4个其他服务。但是,我想在持久化数据库调用后不久返回一个响应,然后异步调用另一个线程上的其他服务?对其他3-4个服务的调用最终保持一致是可以的(例如,对keen.io分析服务的调用)。在Spring Boot中如何轻松做到这一点呢?
发布于 2016-08-08 15:06:50
我认为你甚至不需要spring来做这份工作。你可以使用java.util.concurrent.CompletableFuture#runAsync在不同的线程上异步运行一些东西。
你也可以使用弹簧async support。只需使用@Async注释spring bean方法(在本例中返回void)。并且不要忘记通过使用@EnableAsync注释配置类来启用异步支持。
发布于 2016-08-08 13:19:06
一种解决方案是让一个正在运行的线程监视队列,以确定何时执行某些工作。当请求完成其直接任务时,它会将信息添加到队列中,以便监视线程能够理解它需要做一些工作。您可以让一个线程池监视队列,以提高性能。对于基于事件的编程来说,这是一个相当标准的模式,它提供了让操作异步运行的能力。
https://stackoverflow.com/questions/38819715
复制相似问题