带有轮询器的Spring Integration出站网关

时间:2016-05-31 17:25:41

标签: spring spring-integration

下面是使用标头配置的出站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" />

1 个答案:

答案 0 :(得分:0)

fixed-delay是确定上一个任务完成后 时间的选项。在您的情况下poll

因为你确认它

  

触发一次并停止。

看起来你没有在dealinfo.channel上以某种方式完成你的工作,也没有将控件返回到TaskScheduler,因此,不要将线程释放给其他东西。

我们确实应该在<chain>之后以及dealinfo.channel上的订阅者看到并理解您的逻辑。

或者......也许您的REST服务根本不会返回响应。独立于reply-timeout="5000"