2016-12-27 94 views
0

我有一些GenerateTableFetch處理器發送Flowfiles到下游UpdateAttributes處理器。從UpdateAttributes,該Flowfile被傳遞到的ExecuteSQL處理器:訪問隊列屬性?

enter image description here

有什麼辦法將屬性添加到流文件度過了一個隊列與Flowfile的隊列中的位置?例如,在我重置/清除GenerateTableFetch的狀態之後,我想知道這是否是來自GenerateTableFetch的第一批Flowfile。我可以在隊列中看到FlowFile的位置,但很有必要的是,我可以將它作爲傳遞到下游的屬性添加。這可能嗎?

enter image description here

回答

1

這不是在Apache中NiFi可用特徵。流文件在隊列中的位置是動態的,並且會隨着流文件從隊列中移除而發生更改,可以通過下游處理或通過流文件到期。

如果你只是想確定隊列爲空加入特定flowfile之前,在這個時候你最好的解決辦法可能是使用一個ExecuteScript處理器獲得通過REST API所需的連接,然後使用FlowFileQueue#isActiveQueueEmpty()來確定指定的隊列當前是否爲空,並向流文件添加一個布爾屬性,指出它是「批處理的第一個」或您想要應用的任何邏輯。

「批次」並非真正的NiFi概念。有沒有想用「第一個」流文件執行的特定操作?也許還有其他的邏輯(即ExecuteSQL處理器沒有在x秒內對流文件進行操作等),這可能會觸發你想要的行爲。