Apache camel 使用apache camel限制FTP轮询消费者

Apache camel 使用apache camel限制FTP轮询消费者,apache-camel,Apache Camel,我有一个需求,在某个时间点,我需要连接到多个ftp/sftp端点(比如100个ftp端点)以下载文件并处理它们 我有一条如下的路线。Seda队列通过将消息移动到适当的文件夹来进一步处理这些消息 from(ftp://username@host/foldername?password=XXXXX&include=.*).to("seda:"+routeId) 现在,如果我同时启动所有FTP端点,这将导致JVM内存问题。如何限制ftp端点的启动?我可以在ftp节流之前使用SEDA吗(如果

我有一个需求,在某个时间点,我需要连接到多个ftp/sftp端点(比如100个ftp端点)以下载文件并处理它们

我有一条如下的路线。Seda队列通过将消息移动到适当的文件夹来进一步处理这些消息

from(ftp://username@host/foldername?password=XXXXX&include=.*).to("seda:"+routeId) 

现在,如果我同时启动所有FTP端点,这将导致JVM内存问题。如何限制ftp端点的启动?我可以在ftp节流之前使用SEDA吗(如果可以,我如何使用它)?我可以使用任何其他EIP或想法来限制轮询ftp消费者的触发吗?

如果要限制消息的获取,可以查看限制dsl。

要控制启动,可以查看simplescheduleroutepolicy。。


它处理路由激活和停用。虽然我自己没有使用过它,但看起来您可能可以在路由开始和停止的时间上添加一个受控延迟。

如果您想限制消息的获取,您可以查看节流器dsl。

要控制启动,可以查看simplescheduleroutepolicy。。


它处理路由激活和停用。虽然我自己没有使用过它,但看起来您可能可以在路线开始和停止的时间上添加一个受控延迟。

我过去曾遇到过这个问题,使用cron通过以下方式解决了这个问题:

from("ftp://username@host/foldername?password=XXXXX&include=.*&scheduler=quartz2&scheduler.cron=0/2+*+*+*+*+?")
您可以将每个FTP使用者设置为在不同的时间拉取(例如,相差一分钟)

如果您决定走这条路,您可以使用以下网站轻松构建cron:

希望这有帮助


R.

我以前遇到过这个问题,我使用cron通过以下方式解决了这个问题:

from("ftp://username@host/foldername?password=XXXXX&include=.*&scheduler=quartz2&scheduler.cron=0/2+*+*+*+*+?")
您可以将每个FTP使用者设置为在不同的时间拉取(例如,相差一分钟)

如果您决定走这条路,您可以使用以下网站轻松构建cron:

希望这有帮助

R