Wait 2025.5.31.15¶
Bundle¶
org.apache.nifi | nifi-standard-nar
Beschreibung¶
Leitet die FlowFiles an die Beziehung „wait“ weiter, bis ein passendes Freigabesignal von einem entsprechenden Notify-Prozessor im verteilten Cache gespeichert wird. Wenn ein passendes Freigabesignal identifiziert wird, wird ein wartendes FlowFile an die Beziehung „success“ weitergeleitet. Der Eintrag für das Freigabesignal wird dann aus dem Cache entfernt. Die Attribute der FlowFile, die das Releasesignal erzeugt haben, werden auf das wartende FlowFile kopiert, wenn die Eigenschaft „Attribute Cache Regex“ des entsprechenden Notify-Prozessors richtig eingestellt ist. Wenn es mehrere Freigabesignale im Cache gibt, die durch den Release Signal Identifier identifiziert werden, und der Notify-Prozessor so konfiguriert ist, dass er die FlowFile-Attribute in den Cache kopiert, dann erhält das FlowFile, das den Wait-Prozessor passiert, die Vereinigung der Attribute der FlowFiles, die die Freigabesignale im Cache erzeugt haben (identifiziert durch den Release Signal Identifier). Wartende FlowFiles werden an „expired“ weitergeleitet, wenn sie die Ablaufdauer überschreiten. Wenn Sie auf mehr als ein Signal warten müssen, geben Sie die gewünschte Anzahl von Signalen über die Eigenschaft „Target Signal Count“ an. Dies ist besonders nützlich bei Prozessoren, die ein Quell-FlowFile in mehrere Fragmente aufteilen, wie z. B. SplitText. Um darauf zu warten, dass alle Fragmente verarbeitet werden, verbinden Sie die Beziehung „original“ mit einem Wait-Prozessor und die Beziehung „splits“ mit einem entsprechenden Notify-Prozessor. Konfigurieren Sie die Prozessoren „Benachrichtigen“ und „Warten“ so, dass sie „${fragment.identifier}“ als Wert für „Release Signal Identifier“ verwenden, und geben Sie „${fragment.count}“ als Wert für „Target Signal Count“ im Prozessor „Warten“ an. Es wird empfohlen, einen Priorisierer (z. B. First In First Out) zu verwenden, wenn Sie die Beziehung „Warten“ als Schleife verwenden.
Eingabeanforderung¶
REQUIRED
Unterstützt sensible dynamische Eigenschaften¶
false
Eigenschaften¶
Eigenschaft |
Beschreibung |
---|---|
attribute-copy-mode |
Legt fest, wie Attribute behandelt werden sollen, die von FlowFiles in den Notify-Prozessor kopiert werden. |
distributed-cache-service |
Der Controller Service, der zum Überprüfen auf Freigabesignale von einem entsprechenden Notify-Prozessor verwendet wird. |
expiration-duration |
Gibt die Dauer an, nach der wartende FlowFiles an die Beziehung „expired“ weitergeleitet werden. |
releasable-flowfile-count |
Ein Wert oder das Ergebnis einer Anweisung der Attribute Expression Language, der gegen einen FlowFile ausgewertet wird, um die Anzahl der freizugebenden FlowFile zu bestimmen. Hier wird festgelegt, wie viele FlowFiles freigegeben werden können, wenn die Anzahl der Zielsignale die Anzahl der Zielsignale erreicht. Null (0) hat eine besondere Bedeutung, jede Anzahl von FlowFiles kann ausgelöst werden, solange die Anzahl der Signale mit dem Ziel übereinstimmt. |
release-signal-id |
Ein Wert, der den Schlüssel zu einem bestimmten Freigabesignal-Cache angibt. Um zu entscheiden, ob das vom Prozessor verarbeitete FlowFile an die Beziehung „success“ oder „wait“ gesendet wird, prüft der Prozessor die Signale in dem durch diesen Schlüssel angegebenen Cache. |
signal-counter-name |
Innerhalb des Caches (angegeben durch den Release Signal Identifier) können die Signale zu verschiedenen Zählern gehören. Wenn diese Eigenschaft angegeben ist, überprüft der Prozessor die Anzahl der Signale im Cache, die zu diesem bestimmten Zähler gehören. Wenn nicht angegeben, überprüft der Prozessor die Gesamtzahl der Signale im Cache. |
target-signal-count |
Die Anzahl der Signale, die sich im Cache befinden müssen (angegeben durch den Release Signal Identifier), damit das vom Wait-Prozessor verarbeitete FlowFilean die Beziehung „success“ gesendet werden kann. Wenn die Anzahl der Signale im Cache diese Zahl erreicht hat, wird das FlowFile an die Beziehung „success“ weitergeleitet und die Anzahl der Signale im Cache wird um diesen Wert verringert. Wenn Signal Counter Name angegeben ist, prüft dieser Prozessor einen bestimmten Zähler, andernfalls prüft er die Gesamtzahl der Signale im Cache. |
wait-buffer-count |
Geben Sie die maximale Anzahl der eingehenden FlowFiles an, die gepuffert werden können, um zu prüfen, ob sie weitergeleitet werden können. Je mehr Puffer zur Verfügung stehen, desto besser ist die Leistung, da die Anzahl der Interaktionen mit dem Cache-Dienst reduziert wird, indem FlowFiles nach dem Bezeichner des Signals gruppiert wird. Nur ein Bezeichner eines Signals kann bei einer Prozessorausführung verarbeitet werden. |
wait-mode |
Legt fest, wie ein FlowFile behandelt werden soll, das auf ein Benachrichtigungssignal wartet. |
wait-penalty-duration |
Wenn konfiguriert, wird nach der Verarbeitung eines Signalbezeichners, der die Freigabekriterien nicht erfüllt hat, dieser Signalbezeichner zurückgestellt. FlowFiles mit diesem Signalbezeichner werden für die angegebene Zeitspanne nicht erneut verarbeitet, damit der Signalbezeichner andere nicht blockiert. Dies kann für Anwendungsfälle nützlich sein, in denen von einem Wait-Prozessor erwartet wird, dass er mehrere Signalbezeichner verarbeitet und jeder Signalbezeichner mehrere FlowFiles hat, und auch die Reihenfolge der Freigabe von FlowFiles innerhalb eines Signalbezeichners wichtig ist. Die FlowFile-Reihenfolgen kann mit Priorisierern konfiguriert werden. IMPORTANT: Die Anzahl der Signale in der Warteschlange, die verarbeitet werden können, ist begrenzt, und der Wait-Prozessor kann möglicherweise nicht alle Signal-IDs in der Warteschlange überprüfen. Siehe „Weitere Details“ für die Best Practice. |
Beziehungen¶
Name |
Beschreibung |
---|---|
abgelaufen |
Ein FlowFile, das die konfigurierte Verfallsdauer überschritten hat, wird an diese Beziehung weitergeleitet. |
failure |
Wenn der Cache nicht erreicht werden kann oder wenn der Bezeichner für das Freigabesignal null oder leer ist, wird FlowFiles an diese Beziehung weitergeleitet. |
success |
Ein FlowFile mit einem passenden Freigabesignal im Cache wird an diese Beziehung weitergeleitet. |
wait |
Ein FlowFile, das kein passendes Freigabesignal im Cache hat, wird an diese Beziehung weitergeleitet. |
Schreibt Attribute¶
Name |
Beschreibung |
---|---|
wait.start.timestamp |
Alle FlowFiles haben ein Attribut „wait.start.timestamp“, das den anfänglichen Epochen-Zeitstempel festlegt, als die Datei zum ersten Mal in diesen Prozessor gelangt ist. Dies wird verwendet, um die Ablaufzeit des FlowFile zu bestimmen. Dieses Attribut wird nicht geschrieben, wenn das FlowFile zu „Fehler“, „abgelaufen“ oder „Erfolg“ übertragen wird |
wait.counter.<counterName> |
Der Name jedes Zählers, für den seit dem letzten Leeren des Caches mindestens ein Signal im Cache vorhanden war, wird als Attribut in das aktuelle FlowFile kopiert. |