2017-09-18 5 views
0

Ich habe einen Prozessor, der eine Verbindung zu einer elastischen Suche startet, ich mache diese Verbindung für eine Methode mit der Bezeichnung @OnEnabled, aber diese Methode wird nicht aufgerufen:Benutzerdefinierter NIFI-Prozessor OnEnable-Anotation wird nicht aufgerufen

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

Ich habe versucht, die Verbindung auf der OnTrigger-Methode und es funktioniert, aber das tötet die Maschine.

Mein Prozessor erstreckt sich von der AbstractProcessor-Methode.

Antwort

2

Sie möchten wahrscheinlich @OnScheduleed, die beim Starten des Prozessors aufgerufen wird, dann würden Sie Verbindungen in @OnStopped schließen.

Eine weitere Option ist, die Verbindung in onTrigger trägheitslos zu erstellen, indem überprüft wird, ob die Verbindung null ist, und ob sie dann initialisiert wird.

Siehe Beschreibung von @OnEnabled hier:

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

„Beachten Sie, dass diese Anmerkung in einen ReportingTask oder Prozessor, wenn angewendet werden ignoriert Für einen Controller Service, Aktivierung und Deaktivierung sind. als Lifecycle-Ereignisse betrachtet, da sie durch die Aktion für andere Komponenten verwendbar oder unbrauchbar werden. "

Verwandte Themen