我正在尝试Apache Camel技术并遇到麻烦。
我使用Jpa Component的轮询使用者作为from()并在我的实体上设置@consumed注释,以将其在流程结束时的状态更改为“已成功处理”。它工作正常。
但是如果出现任何错误,我不想在我的数据库中设置“成功处理”标志,但是会出现“错误发生”的情况。
为了解决这个问题,我创建了一个带有处理器的“死信队列”,它试图改变我正在进行的实体的状态,以便稍后在数据库中保存。但是该过程始终标记为已完成,因此始终会调用@Consumed方法。
所以我的问题是:如果出现错误,如何跳过@Consumed方法?是否有特定交易所的州设置?
答案 0 :(得分:1)
@Consumed
方法可以Exchange
作为参数,您可以在那里检查交换是否失败,并获取引起的异常或其他内容。在任何情况下,如果成功与否,它应该具有状态,然后您可以相应地更改实体。