Spring整合Splitter任务执行
Spring integration Splitter task execution
我正在开发 Spring 集成应用程序。
我有一个读取目录的入站通道适配器
然后是将文件拆分成行的拆分器
最后是一个发送行
的udp出站通道适配器
<int-file:inbound-channel-adapter prevent-duplicates="false"
id="filesIn" directory="file:input" channel="inputFiles" />
<int:splitter input-channel="inputFiles" output-channel="udpChannel_11111"
expression="T(org.apache.commons.io.FileUtils).lineIterator(payload)" />
<!-- Define UDP outbound channel -->
<int:channel id="udpChannel_11111" />
<int-ip:udp-outbound-channel-adapter channel="udpChannel_11111"
host="192.168.0.1" port="11111" />
我想每隔一秒发一条线
我可以通过定义我自己的拆分器并在每次读取一行时等待 1 秒来做到这一点,但我想知道是否可以在 xml 文件中尽可能简单地做到这一点.
提前致谢
将消息放入 QueueChannel
并使用轮询器每秒发送一次。
UDP 通道适配器目前不支持轮询器,但您可以使用网桥...
<int:splitter input-channel="inputFiles" output-channel="udpChannel_11111"
expression="T(org.apache.commons.io.FileUtils).lineIterator(payload)" />
<int:channel id="toBridge">
<int:queue />
</int:channel>
<int:bridge input-channel="toBridge" output-channel="udpChannel_11111">
<int:poller fixed-delay="1000" max-messages-per-poll="1" />
</int:bridge>
不过请记住,文件将很快加载到队列通道中,如果文件非常大,您可能会遇到内存问题。
我正在开发 Spring 集成应用程序。
我有一个读取目录的入站通道适配器 然后是将文件拆分成行的拆分器 最后是一个发送行
的udp出站通道适配器<int-file:inbound-channel-adapter prevent-duplicates="false"
id="filesIn" directory="file:input" channel="inputFiles" />
<int:splitter input-channel="inputFiles" output-channel="udpChannel_11111"
expression="T(org.apache.commons.io.FileUtils).lineIterator(payload)" />
<!-- Define UDP outbound channel -->
<int:channel id="udpChannel_11111" />
<int-ip:udp-outbound-channel-adapter channel="udpChannel_11111"
host="192.168.0.1" port="11111" />
我想每隔一秒发一条线
我可以通过定义我自己的拆分器并在每次读取一行时等待 1 秒来做到这一点,但我想知道是否可以在 xml 文件中尽可能简单地做到这一点.
提前致谢
将消息放入 QueueChannel
并使用轮询器每秒发送一次。
UDP 通道适配器目前不支持轮询器,但您可以使用网桥...
<int:splitter input-channel="inputFiles" output-channel="udpChannel_11111"
expression="T(org.apache.commons.io.FileUtils).lineIterator(payload)" />
<int:channel id="toBridge">
<int:queue />
</int:channel>
<int:bridge input-channel="toBridge" output-channel="udpChannel_11111">
<int:poller fixed-delay="1000" max-messages-per-poll="1" />
</int:bridge>
不过请记住,文件将很快加载到队列通道中,如果文件非常大,您可能会遇到内存问题。