对 HttpOutboundGateway 进行轮询
Poll on HttpOutboundGateway
@Bean
public HttpMessageHandlerSpec documentumPolledInbound() {
return Http
.outboundGateway("/fintegration/getReadyForReimInvoices/Cz", restTemplate)
.expectedResponseType(String.class)
.errorHandler(new DefaultResponseErrorHandler())
;
}
如何轮询以上内容,以获取进一步处理的有效负载
HTTP 客户端端点不可轮询,而是事件驱动的。因此,例如,正如您通常从 curl
调用一些 REST 服务一样,此处也会发生相同的方式。我猜你有一些 .handle()
,为此 documentumPolledInbound()
并且有一些消息通道可以发送消息来触发这个端点来调用你的 REST 服务。
不清楚您将如何处理响应,但有一种方法可以定期触发事件以调用此端点。
为此我们只能*模拟*一个可以配置一些触发策略的入站通道适配器:
@Bean
public IntegrationFlow httpPollingFlow() {
return IntegrationFlows
.from(() -> "", e -> e.poller(p -> p.fixedDelay(10, TimeUnit.SECONDS)))
.handle(documentumPolledInbound())
.get();
}
通过这种方式,我们将向 handle()
的通道发送一条带有空字符串的消息作为有效载荷。我们每 10 秒执行一次。
由于您的 HttpMessageHandlerSpec
不关心入站有效负载,因此我们 return 来自轮询通道适配器中 MessageSource
的内容真的无关紧要。
@Bean
public HttpMessageHandlerSpec documentumPolledInbound() {
return Http
.outboundGateway("/fintegration/getReadyForReimInvoices/Cz", restTemplate)
.expectedResponseType(String.class)
.errorHandler(new DefaultResponseErrorHandler())
;
}
如何轮询以上内容,以获取进一步处理的有效负载
HTTP 客户端端点不可轮询,而是事件驱动的。因此,例如,正如您通常从 curl
调用一些 REST 服务一样,此处也会发生相同的方式。我猜你有一些 .handle()
,为此 documentumPolledInbound()
并且有一些消息通道可以发送消息来触发这个端点来调用你的 REST 服务。
不清楚您将如何处理响应,但有一种方法可以定期触发事件以调用此端点。
为此我们只能*模拟*一个可以配置一些触发策略的入站通道适配器:
@Bean
public IntegrationFlow httpPollingFlow() {
return IntegrationFlows
.from(() -> "", e -> e.poller(p -> p.fixedDelay(10, TimeUnit.SECONDS)))
.handle(documentumPolledInbound())
.get();
}
通过这种方式,我们将向 handle()
的通道发送一条带有空字符串的消息作为有效载荷。我们每 10 秒执行一次。
由于您的 HttpMessageHandlerSpec
不关心入站有效负载,因此我们 return 来自轮询通道适配器中 MessageSource
的内容真的无关紧要。