2015-02-05 380 views
0

我有一種情況,外部系統會同時向我發送4個不同的文件。讓我們稱他們爲以下幾點:如何配置Apache Camel以基於觸發文件順序執行進程?

  1. customers.xml(可選)
  2. addresses.xml(可選)
  3. references.xml(可選)
  4. activity.xml(觸發文件)

觸發器文件被Camel發送並拾取時,Camel應該查看是否存在#1文件,如果它確實處​​理它;如果沒有,則應用相同的if/then邏輯移至文件#2和文件#3。一旦執行了該邏輯,它就可以繼續執行文件#4。

我找到了像OnCompletion這樣的元素,並確定body是否爲空,但如果有人有更好的想法,我將不勝感激。

回答

0

隨着我進一步思考,事實證明這是更多的序列問題。這裏的關鍵是我會同時批量接收文件。這就是說,我創建了一個可插入CustomComparator

有一次,我創建了CustomComparator類要在特定的ArrayList索引位置我的文件,我能夠路線,我想他們在訂單的消息。

+0

如果第一檔未能兌現,由於網絡故障並立即小故障被糾正。它會打破順序。 – 2016-08-11 12:15:06

+0

從某種意義上說它是可選的。如果它在'activity.xml'之前到達那裏,那麼它將被處理(按順序)。如果它在'activity.xml'之後到達那裏,它將一直存在,直到出現下一個'activity.xml'。 – Carlos 2016-08-12 17:23:30