apache-nifi - 恰好生成 1 个流文件
问题描述
我GenerateFlowFile
在 Apache Nifi 中使用处理器 - 当我激活它时,我希望处理器准确地创建1
Flowfile。
现在我通过 Python 使用 REST API 将状态更改为RUNNING
,等待0.5
几秒钟并将状态更改为STOPPED
. 这导致1
FlowFile 被添加到下一个处理器的队列中。
我测试了一下,等待1.5
几秒钟给了我2
FlowFiles,2.5
几秒钟给了我3
FlowFiles - 我猜处理器每运行一秒就会生成一个 Flowfile。
我怎样才能确保1
正在生成流文件?上述方法显然取决于网络连接和往返时间。最坏的情况:在我等待时连接断开,我无法再停止处理器并且正在生成 x 流文件。
我目前的配置是:
设置:
Yield duration: 1 sec
Penalty Duration: 30sec
Bulletin Level: WARN
调度:
Scheduling Strategy: CRON driven
Concurrent Tasks: 1
Run Schedule: * * * * * ?
Execution: All nodes
Run duration: 0ms
特性:
File Size: 0B
Batch Size: 1
Data Format: Text
Unique FlowFiles: false
Custom Text: No value set
Character Set: UTF-8
Mime Type: No value set
解决方案
您只需将 GenerateFlowFile 标记为主节点(假设您有超过 1 个节点),以确保每个节点都不会生成自己的 FlowFile。
将 Scheduling 设置为 Timer 并将运行计划设置为 604800(1 周) - 这意味着即使您让处理器运行,它也只会每周运行一次 - 这应该给您足够的时间来修复如果您的脚本无法连接以告诉处理器停止,则存在连接问题。
保持并发为 1。
推荐阅读
- postgresql - 使用 python 和 pytest 模拟 postgressql
- php - 获取 Telegram bot sendPoll 消息 php 的 message_id
- linux - 我们可以在 perl 中做到这一点吗?
- kubernetes - 如何正确连接 K8S 对象?
- php - Laravel API 返回文件并且客户端必须显示下载对话框
- javascript - 在页面上找不到我的 jQuery?它是否在其他元素后面显示加载的数据?
- azure-devops - Azure Devops Pipeline 测试步骤失败 - 数据文件的路径不正确
- asp.net - 在 ActionFilterAttribute 中添加标题
- python-2.7 - Python鼻子测试覆盖包并排除一些目录
- javascript - 如何使用 setInterval 函数在屏幕上显示的每个值之间以 500 毫秒的间隔显示阶乘计算?