我正在编写两个数据流,一个是带有HandleHttpRequest / Response处理器的Web服务,在收到通知后应该触发一个单独的流与GetFTP从FTP目录中获取文件。
我尝试使用Wait / Notify处理器进行同步,但GetFTP不允许传入连接,因此我无法将Wait proc连接到它。
我对如何做到这一点有任何想法?
答案 0 :(得分:2)
FetchFTP
,因为它旨在与GetX
结合使用。
这是Apache NiFi中的常见模式 - 会有一个ListX
处理器,然后会有FetchX
和ListX
个处理器串联使用。 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。