Poller spring集成行为 - windows v / s unix

时间:2016-06-07 05:02:33

标签: cron spring-integration

我在inbound-channel-adapter中运行一个轮询器。 当poller附加了一个cron时,我注意到执行方面存在一些差异:

int:poller cron = 0 * / 10 * * * *

预计在轮询器加载后,它会选择目录中提供的所有文件,然后在10分钟后再次尝试:

  • 在Windows上 - 无论计数是多少都可以选择所有文件,并在10分钟后执行下一次。

  • 在unix上 - 每个文件轮询需要10分钟。 如果第一个文件被轮询09.00,则下一个被轮询09.10 如同在Windows上,在09.00,所有文件都被选中,然后再次在09.10。

这是预期的行为吗?

1 个答案:

答案 0 :(得分:0)

你的术语对我来说并不清楚。

无论如何:FileReadingMessageSource扫描目标目录中的文件或每次轮询或内部Queue<File> toBeReceived为空时(当然也在poll上)。 SourcePollingChannelAdapter具有maxMessagesPerPoll选项,默认为1。因此,每个轮询任务从内存中选取一个文件并发送到该通道。是的,只有在轮询间隔后才会发出下一个。

您可以配置maxMessagesPerPoll = 0,并且toBeReceived中的所有文件将在一个轮询周期内发送到该频道。

有关详细信息,请参阅Polling Message Source