Spring Integration入站通道适配器:进行一次轮询并退出

Gib*_*tar 1 spring-integration

我需要创建一个小型的Spring Integration应用程序,将JDBC源代码表与另一个表同步,我只需要偶尔启动一次该脚本.

我想从入站通道适配器进行一次轮询(等待消息流经链)并退出应用程序.

我找不到任何明显的方法:任何建议?

Art*_*lan 6

@Steve建议正确的解决方案.

你应该让你<poller>的一些长时间fixed-delay不开始一个新的轮询任务.或者只是<inbound-channel-adapter>在轮询任务运行后停止.为此目的,只需要制作channelas <publish-subscribe-channel>并添加一个以下用户:

<outbound-channel-adapter channel="processChannel" expression="@adapter.stop()">
Run Code Online (Sandbox Code Playgroud)

那么,这是第一部分:如何制作单曲poll?

回覆.System.exit().

您应该在流程的末尾添加类似的内容outbound-channel-adapter:

<outbound-channel-adapter channel="endProcessChannel" expression="T(System).exit()">
Run Code Online (Sandbox Code Playgroud)

  • 在哪里放置`<oubound-channel-adapter>`并不重要.唯一重要的是你应该为该适配器使用相同的`<int-publish-subscribe-channel>`.并且不要忘记使用`order`选项将其作为第二个订阅者.有关这些组件和选件,请参阅XSD文档. (2认同)