Web 服务中是不是有类似设施的监听器?
Posted
技术标签:
【中文标题】Web 服务中是不是有类似设施的监听器?【英文标题】:Is there a listener like facility in web service?Web 服务中是否有类似设施的监听器? 【发布时间】:2020-01-11 11:06:09 【问题描述】:我是 Spring Boot 和 REST 概念的新手,我不确定如何在我的 Web 应用程序中实现侦听器类型的功能。 我正在开发一个需要每小时向第三方 Web 应用程序发送数据的 Spring Boot Web 应用程序。我的网络应用程序从外部“接收”一个带有 JSON 字符串正文的 PUT 调用。我需要注册传入的人员详细信息并启动一个线程(我猜这是否正确),每小时通过 POST/PUT 将某些数据发送到第 3 方 Web 应用程序。每次发送详细信息之前,我需要对第 3 方 Web 应用程序进行 GET 调用,以确保此人在第 3 方 Web 应用程序中仍然处于活动状态。
下面是我想到的伪逻辑。
-
我的 Web 应用程序收到来自第 3 方 Web 应用程序的 PUT 调用。
解析 JSON 并注册 Person。 (我可以做到这一步)
在 while 循环中,检查 Person 在 3rd 方 Web 应用程序中是否处于活动状态(GET 调用)
如果处于活动状态,则将详细信息发送到第 3 方 Web 应用程序(PUT 调用)
否则停止发送详细信息。
我需要有关如何在我的 Web 应用程序中实现侦听器类型的工具的帮助。 编辑:我遇到了 Java 的 ExecutorService 和线程池的概念。
【问题讨论】:
这些伪逻辑与侦听器有什么关系? 我会推荐一个使用 Rabbit MQ 的基于消息的解决方案。将这些线程和细节保留在您的 REST 服务之外。他们不属于那里。 @duffymo 由于涉及到第 3 方 Web 应用程序(我的客户端组织),我没有发言权要求他们更改 Rabbit MQ。我相信我需要为每个传入的请求创建新线程并有一个侦听器来检查 Person 的活动状态 你当然可以选择。你的信念涉及你对如何解决这个问题的假设。我建议还有另一种方法。在您实施某些事情之前,您可以选择。 【参考方案1】:我认为通过 feign 客户端可以轻松做到。 https://cloud.spring.io/spring-cloud-netflix/multi/multi_spring-cloud-feign.html
【讨论】:
感谢您的领导。我还遇到了 Java 的 ExecutorService 和线程池的概念。我试试看【参考方案2】:经过进一步研究,我发现了 Java 的 Executor Service 和 Thread Pool。我相信这会达到我的目的
【讨论】:
以上是关于Web 服务中是不是有类似设施的监听器?的主要内容,如果未能解决你的问题,请参考以下文章