首页 > 解决方案 > Nifi 通知/等待在完成 ftp 下载后通知另一个处理器链

问题描述

尼菲结构

我正在尝试从结构如下的 ftp 服务器获取数据流:FolderA -> File1, File2, ... File28​FolderB -> File1, File2, ... File28​FolderC -> File1, File2, .. .File28 ​​​这些文件每2小时一个一个定期更新。所有下载完成后每 2 小时我想编写一个实际完成的标志文件。如果不是所有的都及时更新,但至少有一个(10 分钟后的 iE),我仍然想编写一个标志文件,由其他进程链占用,然后必须处理丢失的数据。每个文件夹都需要一个标志文件:FolderA.flag、FolderB.flag....

问题是我不太明白 notify 和 wait 是如何工作的。我想在文件夹中的第一个文件更新后立即等待一个新的 Flowfile。因此,我在右侧的文件中放入了一个名为“FolderName”的属性。如果我将等待节点连接到新属性的成功,我会将每个文件夹的 28 个文件放入等待队列。但我只想要一个。这就是为什么我在乘车端生成一个新的流文件(如果可能的话,我实际上希望消除该节点并将等待节点连接到右侧链,因为我不知道服务器上有哪些文件夹)

“释放信号标识符”在通知和等待中都设置为“文件夹名称”。我不知道为“信号计数器名称”设置什么,而且它不像我想要的那样工作。当前的行为是,每次触发 GenerateFlowFile 时,等待节点并没有真正等待,而是在我在右侧成功运行后直接继续前进并触发标志文件。我是否必须重置触发计数(不是“消耗”吗?)如何正确连接双方?

在此处输入图像描述

这是一个文件夹运行后我的缓存图片。为什么有 28 次条目而不是最新计数的一次?这也会触发等待节点。(注意:我目前用于测试已指定将等待/通知触发器准确命名为 FolderName,并且实际上只使用 ListFTP 中的一个特定文件夹以更好地进行调试)但是现在总是触发等待节点。由于缓存的实体没有过期或删除。我想我必须手动删除它?

标签: ftpapache-nifidataflow

解决方案


推荐阅读