2016-02-15 47 views
0

我正在嘗試Apache Camel技術並陷入困境。camel Jpa繞過@consumed

我使用Jpa Component的輪詢使用者作爲from(),並在我的實體上設置了@consumed註釋,以將其在進程結束時的狀態更改爲「已成功處理」。它工作正常。

但是,如果有任何錯誤,我不想在我的數據庫中設置標誌「成功處理」,但像「錯誤發生」。

爲了解決這個問題,我創建了一個處理器的「死信隊列」,它試圖改變我正在進行的實體的狀態以便稍後保存在數據庫中。但該進程始終標記爲已完成,因此始終調用@Consumed方法。

所以我的問題是:如何在錯誤的情況下跳過@Consumed方法?是否有特定交易所的狀態?

回答

1

@Consumed方法可以有Exchange作爲參數,在那裏你可以檢查交換是否失敗,並得到引起異常或什麼。無論如何,它應該有狀態,如果它是成功的,那麼你可以相應地改變實體。

+0

非常感謝!它解決了我的問題。 :) –