我在inbound-channel-adapter中运行一个轮询器。 当poller附加了一个cron时,我注意到执行方面存在一些差异:
int:poller cron = 0 * / 10 * * * *
预计在轮询器加载后,它会选择目录中提供的所有文件,然后在10分钟后再次尝试:
在Windows上 - 无论计数是多少都可以选择所有文件,并在10分钟后执行下一次。
在unix上 - 每个文件轮询需要10分钟。 如果第一个文件被轮询09.00,则下一个被轮询09.10 如同在Windows上,在09.00,所有文件都被选中,然后再次在09.10。
这是预期的行为吗?
答案 0 :(得分:0)
你的术语对我来说并不清楚。
无论如何:FileReadingMessageSource
扫描目标目录中的文件或每次轮询或内部Queue<File> toBeReceived
为空时(当然也在poll
上)。 SourcePollingChannelAdapter
具有maxMessagesPerPoll
选项,默认为1
。因此,每个轮询任务从内存中选取一个文件并发送到该通道。是的,只有在轮询间隔后才会发出下一个。
您可以配置maxMessagesPerPoll = 0
,并且toBeReceived
中的所有文件将在一个轮询周期内发送到该频道。
有关详细信息,请参阅Polling Message Source。