如何在Apache NiFi中每分钟发送一个FlowFile?
实现每分钟发送一个FlowFile的方案
针对你有138个FlowFile、需要每分钟发送一个的需求,推荐以下几种NiFi处理器组合方案:
方案1:RateLimiter 速率控制(通用场景)
这是最直接的解决方案,适用于已存在于NiFi队列中的FlowFile:
- 将包含138个FlowFile的输入队列连接到RateLimiter处理器
- 配置核心参数:
Rate Control Period:设置为1 minuteMaximum Rate:设置为1
- 配置完成后,RateLimiter会严格限制每分钟仅通过1个FlowFile,直到所有FlowFile处理完毕
方案2:GenerateFlowFile + Delay(生成固定数量FlowFile场景)
如果这138个FlowFile是需要生成的,而非已存在:
- 使用GenerateFlowFile处理器,设置
Batch Size为138,一次性生成138个目标FlowFile - 将生成的FlowFile连接到Delay处理器,配置
Delay Duration为1 minute - 每个FlowFile会依次延迟一分钟后输出,自然形成每分钟发送一个的效果
方案3:ListFile + RateLimiter(本地文件转FlowFile场景)
如果这138个FlowFile对应本地磁盘上的文件:
- 用ListFile处理器扫描目标目录,生成对应138个文件的FlowFile
- 将输出连接到RateLimiter处理器,按方案1的参数配置速率控制,实现每分钟发送一个
精准时间触发方案(可选)
如果需要严格在每分钟的整点时刻发送(如00:01、00:02...),可搭配CronTrigger处理器:
- 配置Cron表达式为
0 * * * * ?(每分钟触发一次) - 每次触发时仅允许一个FlowFile通过,配合上游的FlowFile源实现精准定时发送
内容的提问来源于stack exchange,提问作者Rodrigo Hajime Himauari
相关产品推荐
相关产品推荐

