【发布时间】: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 的活动状态
-
你当然可以选择。你的信念涉及你对如何解决这个问题的假设。我建议还有另一种方法。在您实施某些事情之前,您可以选择。
标签: java spring rest spring-boot web-applications