NiFi - 使用Wait / Notify触发GetFTP

时间:2017-08-25 11:10:55

标签: ftp wait apache-nifi

我正在编写两个数据流,一个是带有HandleHttpRequest / Response处理器的Web服务,在收到通知后应该触发一个单独的流与GetFTP从FTP目录中获取文件。

我尝试使用Wait / Notify处理器进行同步,但GetFTP不允许传入连接,因此我无法将Wait proc连接到它。

我对如何做到这一点有任何想法?

1 个答案:

答案 0 :(得分:2)

在这种情况下可以使用

FetchFTP,因为它旨在与GetX结合使用。

这是Apache NiFi中的常见模式 - 会有一个ListX处理器,然后会有FetchXListX个处理器串联使用。 FetchX扫描源目录/ listing / etc.并为每个匹配结果生成一个流文件,并将它们发送到FetchFTP以单独检索每个项目。

如果您已经知道相关值(即文件名),则可以将其提供给ListFTP处理器。如果没有,您将处于与现在相同的位置,因为Wait也是源处理器,因此不接受传入连接。从技术上讲,您可以使用Notify / GetFTP处理器触发REST API调用来启动/停止PUT /processors/{id}处理器(请参阅Apache NiFi REST API - <TextBox x:Name="textBox1" Margin="10" TextWrapping="Wrap" Text="" FontFamily="Consolas" Background="White" AcceptsReturn="True" IsReadOnly="True" InputScope="Text" ManipulationMode="System" RequestedTheme="Dark" ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Auto"/> ),但这无疑是hacky。