外部触发选项/Kubernetes 到 start/stop spring 集成轮询器
External Trigger Options / Kubernetes to start/stop spring integration poller
我有一个 poller
,每 x 秒 运行。我想控制 poller
的 start/stop
并且也只能 运行 它一次。外部调用应该可以控制它。
- 启动轮询器并每隔 x 间隔继续轮询
- 停止轮询器
- 只轮询一次然后停止 -> 如何做到这一点?
轮询是使用 inbound-channel-adapter
和 poller
完成的。我正在轮询下游流连接到的外部系统的配置数据以获取数据并将它们路由到其他系统
我可以在同一上下文中使用轮询器生命周期方法或控制总线来配置上述调用。
我怎样才能触发这个逻辑?轮询器将 运行 在 kubernetes 上。一些选项是:
- HTTP
- 执行器
- ?
据我所知,Spring Boot Actuator 无论如何都是基于 HTTP 端点的。所以,从 end-user 的角度来看,技术上没有区别。
如果你真的可以像描述者那样使用命令编写一些 REST 服务,那么你确实可以将 SourcePollingChannelAdapter
注入该服务并委托给它的 start()
和 stop()
。
我认为“仅轮询一次”可以通过布尔状态变量实现,您可以从注入该轮询器的 MessageSourceMutator.beforeReceive()
建议中查询该变量。这样您将保持常规轮询触发器不变。
另请参阅 JMS 支持(如果 Kubernetes 提供):https://docs.spring.io/spring-integration/docs/5.3.2.RELEASE/reference/html/system-management.html#jmx-mbean-exporter
我有一个 poller
,每 x 秒 运行。我想控制 poller
的 start/stop
并且也只能 运行 它一次。外部调用应该可以控制它。
- 启动轮询器并每隔 x 间隔继续轮询
- 停止轮询器
- 只轮询一次然后停止 -> 如何做到这一点?
轮询是使用 inbound-channel-adapter
和 poller
完成的。我正在轮询下游流连接到的外部系统的配置数据以获取数据并将它们路由到其他系统
我可以在同一上下文中使用轮询器生命周期方法或控制总线来配置上述调用。
我怎样才能触发这个逻辑?轮询器将 运行 在 kubernetes 上。一些选项是:
- HTTP
- 执行器
- ?
据我所知,Spring Boot Actuator 无论如何都是基于 HTTP 端点的。所以,从 end-user 的角度来看,技术上没有区别。
如果你真的可以像描述者那样使用命令编写一些 REST 服务,那么你确实可以将 SourcePollingChannelAdapter
注入该服务并委托给它的 start()
和 stop()
。
我认为“仅轮询一次”可以通过布尔状态变量实现,您可以从注入该轮询器的 MessageSourceMutator.beforeReceive()
建议中查询该变量。这样您将保持常规轮询触发器不变。
另请参阅 JMS 支持(如果 Kubernetes 提供):https://docs.spring.io/spring-integration/docs/5.3.2.RELEASE/reference/html/system-management.html#jmx-mbean-exporter