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 服务中是不是有类似设施的监听器?的主要内容,如果未能解决你的问题,请参考以下文章

javaweb的监听器导致服务停止运行

oracle的监听器listener 和 java web的监听器listener 的联系是啥?

手把手教你入门web.xml:吃透监听器

过滤器与监听器知识总结

Ldap:监听外部所做的更改

oracle监听启动,为啥会有这样错误,我在命令行输入lsnrctl start