如何解决外部触发器选项/ Kubernetes启动/停止Spring Integration Poller
我有一个poller
,它每x秒运行一次。我想控制start/stop
中的poller
,并且也只能运行一次。外部呼叫应该可以控制它。
- 启动轮询器并继续每隔x间隔轮询一次
- 停止轮询器
- 仅轮询一次并停止->如何执行此操作?
使用inbound-channel-adapter
和poller
进行轮询。我正在轮询下游流连接到的外部系统的配置数据,以获取数据并将其路由到其他系统
我可以在相同的上下文中使用轮询器生命周期方法或控制总线来配置上述调用。
如何触发此逻辑?轮询器将在kubernetes上运行。一些选项是:
- HTTP
- 执行器
- ?
解决方法
据我所知,Spring Boot Actuator还是基于HTTP端点。因此,从最终用户的角度来看,在技术上没有区别。
如果您确实可以使用诸如describer之类的命令编写一些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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。