如何将两条单独的骆驼路线链接在一起进行节流

dus*_*ine 4 apache-camel

我在一个应用程序中运行了两条独立的路线,我想控制整个路径上的飞行工作总量。

Route 1:  Gzipped file on SFTP --> unzip --> local directory
Route 2:  local directory --> process stuff --> Kafka
Run Code Online (Sandbox Code Playgroud)

如果路线 2 有问题或在其工作中落后,我不希望路线 1 填满本地目录。如何限制本地目录中等待处理的文件总数?

(如果是单条路线,我可能会throttle()更容易一些,但是还有其他选择可以查看多条路线的整体情况吗?)

Cla*_*sen 5

您可以实现一个自定义RoutePolicy,检查该目录中的文件数,如果它大于 X,则暂停路由,如果小于 X,则再次恢复它。

在 Camel 文档中查看更多详细信息:http : //camel.apache.org/routepolicy.html

您可以查看现有ThrottlingInflightRoutePolicy的实现方式以获取灵感。