【问题标题】:Working of onTrigger - nifi custom processoronTrigger 的工作 - nifi 自定义处理器
【发布时间】:2019-06-11 12:11:47
【问题描述】:

我刚开始学习 nifi 中的自定义处理器。我想了解 onTrigger 工作的具体情况。我正在使用 nifi 流处理器接口中定义的属性值在 onTrigger 函数中执行一些操作。

Ex: 自定义处理器中的属性值接受一个由 ',' 分隔的字符串,并且在 onTrigger 函数中,我编写了一个将字符串转换为数组的代码字符串并删除额外的空格。

我的问题是每次流文件通过自定义处理器时都会运行此操作还是只转换一次。

我尝试浏览 official 开发文档,但找不到相关信息

【问题讨论】:

  • 编译是什么意思?处理器代码编译?
  • @daggett 是的,我的意思是进程代码编译。

标签: apache-nifi


【解决方案1】:

处理器的 Java 代码在您运行 Maven 构建以生成 NAR 文件时进行编译。代码不是NiFi自己编译的。

然后,通过将 NAR 文件放置在 lib 目录中,将 NAR 文件部署到 NiFi 实例,然后通过将 NAR 中的组件添加到画布来在流程中使用它们。

一旦组件在画布上并启动,就会根据调度策略调用onTrigger方法。

onTrigger 中的任何代码都会在每次执行处理器时运行,因此您读取属性和拆分值的代码每次都会运行。

如果属性支持流文件中的表达式语言,那么您需要每次在 onTrigger 中运行此代码,因为每个流文件的结果值可能不同。

如果属性不支持流文件中的表达式语言,那么您可以改为使用带有@OnScheduled 的方法并将属性值处理为您需要的任何值,并存储在处理器的成员变量中,这样只会发生一次。

【讨论】:

  • 感谢您的回答。对不起,我的问题不完整。我更新了它。请立即检查。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多