gpt4 book ai didi

spring-integration - Sprint Integration DSL - Http Inbound 适配器和轮询器

转载 作者:行者123 更新时间:2023-12-04 14:24:16 27 4
gpt4 key购买 nike

我是 Spring Integration 的新手,我正在尝试设置一个简单的用例:

轮询远程 REST 端点,将返回的有效负载拆分为多行并将其发送到 Kafka 出站适配器。我成功地做了一些类似的事情,它使用了一个文件适配器,但我坚持使用 HTTP 适配器。我不明白如何将轮询器关联到 HTTP 入站适配器。

到目前为止,我的方法是创建一个简单的流程:

return IntegrationFlows
.from
(
Http.inboundChannelAdapter("http://localhost:8080/data")
.requestMapping(m -> m.methods(HttpMethod.GET))
.replyTimeout(20)
)
.channel(INBOUND_DEMO_CHANNEL)
.get();

inboundChannelAdapter 似乎不接受 Poller。在我之前使用文件的尝试中,我创建了一个 FileReadingMessageSource 以便我的流程看起来像:

return IntegrationFlows.from(fileReadingMessageSource,
// POLLER CONFIGURATION
.poller(Pollers.fixedDelay(period)
...
.get();

但我找不到 HTTP 消息源的等效项。

最佳答案

好吧,您忽略了一个事实,即 HTTP 本质上是一个事件驱动的,在这里它是服务器。您从最终用户的角度使用它,就像从浏览器或某些命令行工具或任何其他 HTTP 客户端调用 URL 一样。

不确定是什么让您认为 HTTP 服务器正在轮询。并且不确定它应该轮询什么...

也许您需要的恰恰相反 - Http.outboundGateway(),您可以在其中调用一些远程 REST 服务并等待回复。但这已经不是,而是处理器

如果确实需要定期调用这样的服务,可以考虑使用简单的轮询MessageSource:

IntegrationFlows.from(() -> new GenericMessage<>(""),
.poller(Pollers.fixedDelay(period))
.handle(Http.outboundGateway("http://localhost:8080/data"))

关于spring-integration - Sprint Integration DSL - Http Inbound 适配器和轮询器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49009566/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com