首页 文章

访问队列属性?

提问于
浏览
0

我有许多GenerateTableFetch处理器,它们将Flowfiles发送到下游的UpdateAttributes处理器 . 从UpdateAttributes,Flowfile传递给ExecuteSQL处理器:

enter image description here

是否有任何方法可以将一个属性添加到队列中的流文件中,并将该文件放在队列中?例如,在重置/清除GenerateTableFetch的状态后,我想知道这是否是来自GenerateTableFetch的第一批Flowfiles . 我可以在队列中看到FlowFile的位置,但是有一种方法可以将其添加为传递到下游的属性 . 这可能吗?

enter image description here

1 回答

  • 1

    这不是Apache NiFi中的可用功能 . 队列中流文件的位置是动态的,并且会随着流文件从队列中删除(通过下游处理或流文件到期)而更改 .

    如果您只是在添加特定流文件之前尝试确定队列是否为空,那么此时您最好的解决方案可能是使用 ExecuteScript 处理器通过REST API获取所需的连接,然后使用 FlowFileQueue#isActiveQueueEmpty() 来确定是否指定queue当前为空,并向流文件添加一个布尔属性,指示它是"first of a batch"或您要应用的任何逻辑 .

    "Batches"并不是真正的NiFi概念 . 是否要使用"first"流文件执行特定操作?也许还有其他逻辑(即 ExecuteSQL 处理器在x秒内没有对流文件进行操作等)可能会触发您想要的行为 .

相关问题