NIFI处理器不会调用@OnStopped或@OnDisabled函数

时间:2018-09-17 08:54:53

标签: apache-nifi

我有一个NIFI处理器,可以订阅OPC UA服务器上的一些标签。 我正在努力寻找一种终止订阅的方法。我的计划是一直保持运行,直到我决定停止处理器。

我尝试为@ OnStopped,@ OnUnscheduled和@OnDisabled定义函数,但是当我停止或禁用处理器时,它们永远不会被调用。 我使用的是NIFI 1.7,因此可以终止处理器的线程,但是仍无法调用我的@ OnStopped,@ OnUnscheduled和@OnDisabled函数。

终止线程是否意味着该线程不会以允许调用上述生命周期方法的方式从onTrigger返回?

编辑:根据要求,我的方法带有注释:

@OnStopped
private void OnStopped() {
    getLogger().info("Subscriptions cleared - stopped");
    miloOpcUAService.clearSubscriptions();
}

1 个答案:

答案 0 :(得分:3)

您的方法必须具有公共可见性,否则调度程序(使用反射)将无法找到它来调用它。