我有许多GenerateTableFetch处理器,它们将Flowfiles发送到下游的UpdateAttributes处理器 . 从UpdateAttributes,Flowfile传递给ExecuteSQL处理器:
是否有任何方法可以将一个属性添加到队列中的流文件中,并将该文件放在队列中?例如,在重置/清除GenerateTableFetch的状态后,我想知道这是否是来自GenerateTableFetch的第一批Flowfiles . 我可以在队列中看到FlowFile的位置,但是有一种方法可以将其添加为传递到下游的属性 . 这可能吗?
1 回答
这不是Apache NiFi中的可用功能 . 队列中流文件的位置是动态的,并且会随着流文件从队列中删除(通过下游处理或流文件到期)而更改 .
如果您只是在添加特定流文件之前尝试确定队列是否为空,那么此时您最好的解决方案可能是使用
ExecuteScript
处理器通过REST API获取所需的连接,然后使用FlowFileQueue#isActiveQueueEmpty()
来确定是否指定queue当前为空,并向流文件添加一个布尔属性,指示它是"first of a batch"或您要应用的任何逻辑 ."Batches"并不是真正的NiFi概念 . 是否要使用"first"流文件执行特定操作?也许还有其他逻辑(即
ExecuteSQL
处理器在x秒内没有对流文件进行操作等)可能会触发您想要的行为 .