我正在尝试 Apache Camel 技术,但遇到了麻烦。
我使用 Jpa 组件的轮询使用者作为 from() 并在我的实体上设置 @consumed 注释,以在流程结束时将其状态更改为“已成功处理”。效果很好。
但如果出现任何错误,我不想在数据库中设置“已成功处理”标志,而是设置“发生错误”之类的标志。
为了解决这个问题,我创建了一个带有处理器的“死信队列”,它尝试更改我正在进行的实体的状态,以便稍后保存在数据库中。但该过程始终标记为已完成,因此始终会调用 @Consumed 方法。
所以我的问题是:如果出现错误,如何跳过 @Consumed 方法?是否需要设置特定的交换状态?
最佳答案
@Consumed
方法可以将 Exchange
作为参数,您可以在其中检查交换是否失败,并获取导致的异常或其他内容。无论如何,如果成功与否,它应该有状态,然后您可以相应地更改实体。
关于java - Camel Jpa绕过@consumed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35412059/