【问题标题】:Inject nifi web-api bean into custom processor将 nifi web-api bean 注入自定义处理器
【发布时间】:2018-08-13 23:22:21
【问题描述】:

我在玩 NiFi 定制处理器。 如何将org.apache.nifi.web.StandardNiFiServiceFacade 的实例注入到我的自定义处理器实例中?

背景:

我正在尝试实现在处理器执行后停止处理器的目标。我知道 nifi 处理器仅用于流处理而不用于批处理,在批处理中我们只执行一次作业。但是为了利用 NiFi 执行支持,这需要完成。随着进一步的实验,我将能够使用自定义处理器实例中可用的StandardNiFiServiceFacade 实例来做到这一点。

【问题讨论】:

    标签: apache-nifi


    【解决方案1】:

    这不是故意提供给处理器 API 的。如果您确定要让处理器告诉控制器停止调度它,那么它可以对 API 进行 HTTP/REST API 调用,就像用户界面或编程 API 调用的情况一样。

    但是,处理器不应该这样做。它们要么计划执行,要么不计划执行。如果不再需要执行某些功能的条件,则处理器可以检查这些条件并将其触发调用短路并简单地返回。如果存在执行某些功能的条件,那么它可以运行它们。

    【讨论】:

    • 这有帮助!我通过调用“PUT /processors/{id}”并停止处理器来做到这一点。
    【解决方案2】:

    如果您从 GenerateFlowFile 等上游处理器触发此自定义处理器,您可以利用 ExecuteScript 来模拟“一次性”作业触发器,请查看 my blog post 获取 Groovy 脚本可能会帮助您实现您想要做的事情。

    【讨论】:

      猜你喜欢
      • 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
      相关资源
      最近更新 更多