在我的流程开始时,我有一个文件入站适配器,它定期读取目录:
<int-file:inbound-channel-adapter id="filteredFiles"
directory="${controller.cycle.lists.input.dir}"
channel="semaphoreChannel" filename-pattern="*.xml">
<int:poller fixed-delay="3000"/>**
</int-file:inbound-channel-adapter>
当SI工作流程结束时,它永远不会再发生。看来轮询器已经死了并停止工作。
日志中没有任何错误消息,也没有任何警告。
频道配置:
<int:channel id="semaphoreChannel" datatype="java.io.File"/>
第二种配置:
<int-file:inbound-channel-adapter id="filteredFiles"
directory="${controller.cycle.lists.input.dir}"
channel="semaphoreChannel" filename-pattern="*.xml">
<int:poller cron="0 * * * * *" />
</int-file:inbound-channel-adapter>
答案 0 :(得分:0)
没有意义。
由于您使用其他<poller>
选项的默认设置,因此您最终得到:
public static final int MAX_MESSAGES_UNBOUNDED = Integer.MIN_VALUE;
private volatile long maxMessagesPerPoll = MAX_MESSAGES_UNBOUNDED;
这意味着FileReadingMessageSource
在单个轮询周期中按提供的模式读取所有文件。
poller
不会停止工作,但目录中没有其他内容可供阅读。
更改为此max-messages-per-poll="1"
并告诉我们它是怎么回事。
从另一方面,您可以打开org.springframework.integration.endpoint.SourcePollingChannelAdapter
的DEBUG日志记录级别,日志中会显示一条消息:
在投票期间未收到任何消息,返回'false'