当前位置: 首页 > 知识库问答 >
问题:

如何使Spring Boot REST控制器异步?

刁茂才
2023-03-14

我的应用程序是简单的3-层Spring Boot rest Web服务,具有通常的同步endpoint。但是由于从我的服务发送请求的下游系统获得响应的时间相当长(有点像60秒),我需要向我的服务添加对异步REST调用的支持,以保存上游系统免于等待响应。换句话说,如果对下游系统的响应需要超过60秒(超时),那么上游系统会断开与我的服务的连接并继续运行...

但是当响应到来时,我的服务使用来自上游系统的“reply to”头将响应发送到上游系统。

上面所有的东西都是一种回调或网络钩子。

但我没有找到任何实施的例子。

如何实施这一机制?如何查找更多信息?Spring Boot是否有现成的实现方法?

感谢您的关注!

共有1个答案

柳宪
2023-03-14

您可以使用Spring中的@Async注释。您还需要通过设置@EnableAsync在您的应用程序中启用它。

一个重要的注意事项是,带有@Async注释的方法应该位于调用它的不同类上。这将让Spring代理拦截调用并有效地异步执行。

请在这里找到官方教程。

 类似资料:
  • 我有一个rest控制器,它有简单的CRUD操作。我正在尝试编写集成测试。 下面是我的RestController: 我已经为RestController中的所有endpoint编写了集成测试 集成测试类:- 我的问题: 1.)当我把断点放在Rest控制器中时,它并没有停在那里,实际上它没有被调用。 2.)当我运行GET测试时,它会从响应返回登录html页面。getBody() 3.)当我运行POS

  • 我对Spring框架是完全陌生的。我有一个任务是在Spring上制作电话簿应用程序。我需要登记和授权,还有我的电话簿。我有两个控制器,第一个是控制授权和注册的UserController 当我尝试进行身份验证或注册时。新用户我有这样的错误: NestedServletException:请求处理失败;嵌套异常是java.lang.IllegalStateException:映射到HTTP路径“HT

  • 我在我的控制器中使用javax验证,带有。当服务器接收到无效数据时,它会抛出错误,但我想处理该错误并返回自定义格式的错误。我无法在控制器建议中捕获异常。我使用的是Spring webFlux,因此无法使用bindingResult。我如何处理该异常?这是我的代码 控制器 资源 错误处理程序

  • 问题内容: 如何使用TypeScript定义我的控制器。到目前为止,它在angular js中,但是我想更改为type script。以便可以快速检索数据。 问题答案: 我决定通过工作示例添加另一个答案。这是非常简单的版本,但应该显示所有的基本如何向我们 和 。 有一个工作的家伙 这将是我们扮演服务器的角色。 这将是我们的启动模块: 所以以后我们可以使用module 。这就是我们的index.ht

  • 我试图通过AWS负载平衡器公开在kubernetes集群中运行的应用程序。我遵守了文件https://cloudyuga.guru/blog/cloud-controller-manager直到我在kubeadm中添加了云提供者=外部。conf文件。但这份文档是基于数字海洋云的,我正在从事AWS的工作,我很困惑是否需要运行任何部署。yaml文件以使处于挂起状态的吊舱运行,如果是,请提供链接,我现在

  • 问题内容: 我写了一个过滤器函数,它将根据您传递的参数返回数据。我希望控制器具有相同的功能。是否可以在控制器中重用过滤器功能? 到目前为止,这是我尝试过的: 问题答案: 将 $ filter 注入控制器 然后,无论您想在哪里使用该过滤器,都可以像这样使用它: 如果要将参数传递给该过滤器,请使用单独的括号进行处理: 您要过滤的数组在哪里,并且是用于过滤的对象。