我在我的自定义 NiFi 处理器中从远程 API 服务获取不同时间范围的数据。
我有时间范围全局计数器,每次迭代都会更新(我正在使用计时器驱动的调度策略)。
当计数器大于最大值时,我想仅从请求(session.get()
)传输FlowFile,并且SUCCESS> 关系,即不执行额外的逻辑:
session.transfer(requestFlowFile, SUCCESS);
我知道当时间范围收集结束时我无法停止或暂停处理器。所以我尝试使用上述方法作为解决方案。
所有迭代都会顺利进行,直到计数器大于最大值并且处理器尝试从请求传输 FlowFile (session.get()
)
所以我有这个异常(exception):
由于org.apache.nifi.processor.exception.FlowFileHandlingException而无法处理 session :StandardFlowFileRecord[uuid=459e615b-0ff5-424f-aac7-f95d364cdc13,claim=,offset=0,name=99628180019265,size=0]在本次 session 中未知
这里出了什么问题?或者可能是另一种方法?
最佳答案
该错误意味着传递给 session.transfer() 的流文件来自不同的 session 。您只能在调用 get() 的同一个 session 上调用 Transfer()。
关于java - Apache NiFi : FlowFileHandlingException when transfer FlowFile in custom processor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44189181/