正好生成 1 个流文件
Generate exactly 1 Flowfile
我在 Apache Nifi 中使用 GenerateFlowFile
处理器 - 当我激活它时,我希望处理器准确创建 1
Flowfile。
现在我通过 Python 使用 REST API 将状态更改为 RUNNING
,等待 0.5
秒并将状态更改为 STOPPED
.这导致 1
FlowFile 被添加到下一个处理器的队列中。
我测试了一下,等待 1.5
秒给我 2
FlowFiles,2.5
秒给我 3
FlowFiles - 我猜处理器会生成一个Flowfile 每秒 运行.
我如何确保 1
Flowfile 正在生成? 上述方法显然取决于网络连接和往返时间。最坏的情况:在我等待时连接断开,我无法再停止处理器并且正在生成 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。
将调度设置为计时器并将 运行 调度设置为 604800(1 周)之类的东西 - 这意味着即使您离开处理器 运行ning,它也只会运行 每周一次 - 如果您的脚本无法连接以告诉处理器停止,这应该会给您足够的时间来解决连接问题。
保持并发为 1。
我在 Apache Nifi 中使用 GenerateFlowFile
处理器 - 当我激活它时,我希望处理器准确创建 1
Flowfile。
现在我通过 Python 使用 REST API 将状态更改为 RUNNING
,等待 0.5
秒并将状态更改为 STOPPED
.这导致 1
FlowFile 被添加到下一个处理器的队列中。
我测试了一下,等待 1.5
秒给我 2
FlowFiles,2.5
秒给我 3
FlowFiles - 我猜处理器会生成一个Flowfile 每秒 运行.
我如何确保 1
Flowfile 正在生成? 上述方法显然取决于网络连接和往返时间。最坏的情况:在我等待时连接断开,我无法再停止处理器并且正在生成 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。
将调度设置为计时器并将 运行 调度设置为 604800(1 周)之类的东西 - 这意味着即使您离开处理器 运行ning,它也只会运行 每周一次 - 如果您的脚本无法连接以告诉处理器停止,这应该会给您足够的时间来解决连接问题。
保持并发为 1。