NiFi如何清除所有队列

NiFi how to clear all queues

我目前使用的是NiFi 1.5.0(但与之前的版本一样),不知道有没有办法同时清空所有队列?

当处理器数量增加时,重置所有内容可能会很长时间。

(我已经知道如何清除单个队列:

我正在寻找使用 UI 或 API

的解决方案

提前致谢!

如果您想完全删除所有数据,可以停止 NiFi 并删除所有“_repository”目录(流文件、内容和出处)。这基本上是在数据方面完全重置你的 NiFi。

我还没来得及彻底测试它,但它应该可以工作:

# In your linux shell - NiPyAPI is a Python2/3 SDK for the NiFi API
pip install nipyapi
python
# In Python
from nipyapi import config, canvas, nifi
# Get a flat list of all process groups
pgs = canvas.list_all_process_groups()
# get a flat list of all connections in all process groups
cons = []
for pg in pgs: cons += nifi.ProcessgroupsApi().get_connections(pg.id).connections
# Issue a drop order for every connection in every process group
for con in cons: nifi.FlowfilequeuesApi().create_drop_request(con.id)

编辑:我继续实施它,因为它看起来很有用: https://github.com/Chaffelson/nipyapi/issues/45

import nipyapi
pg = nipyapi.canvas.get_process_group('MyProcessGroup')
nipyapi.canvas.purge_process_group(pg, stop=True)

停止选项将在清除进程组之前对其进行取消调度,只是为了更加方便