【发布时间】:2025-11-29 15:55:01
【问题描述】:
我正在努力寻找以恒定间隔(例如~1 秒)轮询服务器的正确方法。
流程如下
- 客户端应用程序收到消息,表明轮询可以从提供的参数开始(不需要时它不会轮询)
- 客户端应用程序开始每隔约 1 秒轮询一次 http 端点,参数随消息到达(如查询参数)
- 服务器应用程序以 pending 状态响应,表明客户端应继续轮询
- 服务器应用程序以 finished 状态响应并返回结果 - 无需继续轮询。
我们可以有多个线程,因为客户端应用程序可能会在短时间内收到多条消息 - 轮询应该立即开始
我不想重新发明*,也许有合适的工具可以与 java/spring 一起使用?
主要特点
- 仅在需要时进行轮询
- 使用自定义参数进行轮询(查询字符串中的自定义参数)
- 扩展轮询,因为应用程序可以以相同的时间间隔同时轮询多个端点
我正在浏览各种库,例如 Apache Camel 或 Spring Integration PollableChannel,但我觉得这些库都不能为我提供开箱即用的正确解决方案。
如果没有这样的库 - 我将使用 redis 和简单循环自己编写它,但也许有人遇到过类似的问题。
【问题讨论】:
-
您是否考虑过避免轮询并使用 WebSocket 提供一种回调机制?
-
恐怕服务器应用程序不支持 WebSocket 协议
标签: java spring spring-boot spring-integration polling