下面是使用标头配置的出站http网关,但在添加轮询时不会连续触发。它只会被触发一次并停止。
<int:inbound-channel-adapter channel="fooinfotrigger.channel" expression="''">
<int:poller fixed-delay="5000"></int:poller>
</int:inbound-channel-adapter>
<int:channel id="fooinfo.channel">
<int:queue capacity="10"/>
</int:channel>
<int:channel id="fooinfotrigger.channel"></int:channel>
<int:chain input-channel="fooinfotrigger.channel" output-channel="fooinfo.channel">
<int:header-enricher>
<int:header name="Authorization" value="...." />
<int:header name="Content-Type" value="...." />
</int:header-enricher>
<int-http:outbound-gateway id="fooHttpGateway"
url="https://foo.com/v1/services/foo?status=active"
http-method="GET"
expected-response-type="java.lang.String"
charset="UTF-8"
reply-timeout="5000">
</int-http:outbound-gateway>
<int:transformer method="transform" ref="fooResourcesTransformer"/>
</int:chain>
<bean id="fooResourcesTransformer" class="com.foo.FooTransformer" />
答案 0 :(得分:0)
fixed-delay
是确定上一个任务完成后 时间的选项。在您的情况下poll
。
因为你确认它
触发一次并停止。
看起来你没有在dealinfo.channel
上以某种方式完成你的工作,也没有将控件返回到TaskScheduler
,因此,不要将线程释放给其他东西。
我们确实应该在<chain>
之后以及dealinfo.channel
上的订阅者看到并理解您的逻辑。
或者......也许您的REST服务根本不会返回响应。独立于reply-timeout="5000"
。