apache-camel - 在骆驼中暂停文件处理?
问题描述
我有一条看起来像这样的路线,第一条路线从文件中读取
from("file:verylargefile.csv")
.multicast()
.parallelProcessing()
.to(directEndpoint)).end()
from(directEndpoint)
.routeId(routeId)
.routePolicy(routePolicy)
.process(proxyFieldProcessor)
.marshal().json(JsonLibrary.Jackson)
.to(http-endpoint);
如果来自其他端点的错误响应太多,我需要暂停文件处理。我在第二条路由上使用自定义路由策略,这确实暂停了第二条路由,但第一条路由继续向第二条路由发送消息,导致org.apache.camel.component.direct.DirectConsumerNotAvailableException
有没有其他方法可以在骆驼中暂停文件处理?
解决方案
准确做到这一点的一种方法是在第二条路由中实现一个错误处理程序,它使用 ControlBus 组件来挂起第一个:
controlbus:route?routeId=foo&action=suspend
推荐阅读
- paypal-sandbox - 交易搜索在 PayPalAPI 中返回 AUTHENTICATION_FAILURE
- rapidminer - 加入 Rapidminer 后无示例
- android - 如何在kotlin中制作二级构造函数
- wordpress - 自定义字段上的 WordPress date_query
- json - 不同 Json 结构的 Yew 回调
- java - 可以停止(返回)从超级方法继承的类的执行吗?
- python-3.x - 从 FastAPI 中的后台任务获取返回状态
- json - 什么可以使这段代码实现我在颤动中可视化这个饼图的目标?
- javascript - 在 Javascript 中,我希望代码只返回在 HTML 的不同行上具有相同 ID 的名称
- c# - Oracle 数据访问管理器异常