我有一个开始与弹性搜索建立连接的处理器,我正在使用带有@OnEnabled注释的方法进行此连接,但未调用此方法:

@OnEnabled
public void onEnabled(final ConfigurationContext configurationContext) {
 <code connection goes here>
}


我已经尝试过onTrigger方法上的连接,并且可以正常工作,但这会杀死机器。

我的处理器是从AbstractProcessor方法扩展而来的。

最佳答案

您可能希望在启动处理器时调用@OnScheduled,然后关闭@OnStopped中的连接。

另一种选择是通过检查连接是否为空,然后初始化该连接来延迟在onTrigger中创建连接。

在这里查看@OnEnabled的描述:

https://nifi.apache.org/docs/nifi-docs/html/developer-guide.html#component-lifecycle


  “请注意,如果将注释应用于
  ReportingTask或Processor。对于控制器服务,启用和
  禁用被视为生命周期事件,因为该行为使它们成为
  其他组件无法使用或无法使用。”

07-26 08:26