2016-12-27 95 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秒内对流文件进行操作等),这可能会触发你想要的行为。