Spring integration 使用多个执行器的spring集成

Spring integration 使用多个执行器的spring集成,spring-integration,Spring Integration,我有一个spring集成配置,其中我轮询目录中的文件,然后在后面的步骤中处理这些文件 我正在使用一个调度程序通道进行处理步骤,该通道允许释放轮询器线程并返回,以便在处理步骤发生时继续进行轮询 在达到线程池限制之前,这一切都很正常,因为当轮询器将文件提交到处理步骤时,CALLER\u会运行拒绝策略,因此它最终会在与轮询器相同的线程中进行处理,轮询器会停止要暂停的轮询过程,直到该步骤完成 我怎样才能将这个过程的两个阶段完全解耦 我的想法是使用两个任务执行器,一个用于轮询,另一个用于调度,但这似乎没有

我有一个
spring
集成配置,其中我轮询目录中的文件,然后在后面的步骤中处理这些文件

我正在使用一个调度程序通道进行处理步骤,该通道允许释放轮询器线程并返回,以便在处理步骤发生时继续进行轮询

在达到线程池限制之前,这一切都很正常,因为当轮询器将文件提交到处理步骤时,
CALLER\u会运行
拒绝策略,因此它最终会在与轮询器相同的线程中进行处理,轮询器会停止要暂停的轮询过程,直到该步骤完成

我怎样才能将这个过程的两个阶段完全解耦

我的想法是使用两个任务执行器,一个用于轮询,另一个用于调度,但这似乎没有帮助

<!-- Poll files from landing zone directory -->
<int-file:inbound-channel-adapter id="files" directory="${lz.dir.${ft}}" filename-regex=".*\.txt$">
    <int:poller fixed-delay="3000" max-messages-per-poll="2" task-executor="pollingExecutor" />
</int-file:inbound-channel-adapter>

<int:bridge input-channel="files" output-channel="sourceFiles" />

<!-- Dispatch retrieved files -->
<int:channel id="sourceFiles">
    <int:dispatcher task-executor="processingExecutor" />
</int:channel>

基本上,我希望投票过程永远不会停止。任何帮助都将不胜感激


谢谢

使用
队列频道
;轮询器将文件转储到队列中,另一侧有一个轮询器将消息从队列中拉出

默认情况下,队列是无边界的

当然,您也可以在executor中使用无界队列

但如果你的消费者跟不上,你最终会陷入麻烦