Wait 2025.5.31.15¶
Bundle¶
org.apache.nifi | nifi-standard-nar
Description¶
Route les FlowFiles entrants vers la relation « wait » jusqu’à ce qu’un signal de version correspondant soit stocké dans le cache distribué à partir d’un processeur Notify correspondant. Lorsqu’un signal de libération correspondant est identifié, un FlowFile en attente est routé vers la relation “success”. L’entrée du signal de libération est ensuite supprimée du cache. Les attributs du FlowFile qui a produit le signal de libération sont copiés vers le FlowFile en attente si la propriété Attribute Cache Regex du processeur Notify correspondant est correctement définie. S’il existe plusieurs signaux de libération dans le cache identifiés par l’Identifiant du signal de libération et que le processeur Notify est configuré pour copier les attributs du FlowFile vers le cache, alors le FlowFile passant par le processeur Wait reçoit l’union des attributs des FlowFiles qui ont produit les signaux de libération dans le cache (identifiés par l’Identifiant du signal de libération). Les FlowFiles en attente seront routés vers “expired” s’ils dépassent la durée spécifiée dans la durée d’expiration. Si vous devez attendre plus d’un signal, spécifiez le nombre souhaité de signaux via la propriété “Target Signal Count”. Cela est particulièrement utile avec des processeurs qui fractionnent un FlowFile source en plusieurs fragments, tels que SplitText. Pour attendre que tous les fragments soient traités, connectez la relation “original” à un processeur Wait et la relation “splits” à un processeur Notify correspondant. Configurez les processeurs Notify et Wait pour utiliser “${fragment.identifier}” comme valeur de l’Identifiant du signal de libération et spécifiez “${fragment.count}” comme valeur de “Target Signal Count” dans le processeur Wait. Il est recommandé d’utiliser un prioritizer (par exemple First In First Out) lorsque vous utilisez la relation “wait” comme boucle.
Exigences en matière d’entrées¶
REQUIRED
Prend en charge les propriétés dynamiques sensibles¶
false
Propriétés¶
Propriété |
Description |
---|---|
attribute-copy-mode |
Indique comment traiter les attributs copiés à partir de FlowFiles entrant dans le processeur Notify |
distributed-cache-service |
Le Controller Service utilisé pour vérifier les signaux de libération provenant d’un processeur Notify correspondant |
expiration-duration |
Indique la durée après laquelle les FlowFiles en attente seront routés vers la relation “expired”. |
releasable-flowfile-count |
Une valeur ou le résultat d’une instruction de l’Attribute Expression Language qui sera évalué pour un FlowFile afin de déterminer le nombre de FlowFile libérables. Cette valeur spécifie combien de FlowFiles peuvent être libérés lorsque le nombre cible atteint le Target Signal Count. Zéro (0) a une signification particulière : tout nombre de FlowFiles peut être libéré tant que le nombre de signaux correspond à la cible. |
release-signal-id |
Valeur qui spécifie la clé d’un cache de signaux de libération spécifique. Pour décider si le FlowFile en cours de traitement par le processeur Wait doit être envoyé vers la relation “success” ou “wait”, le processeur vérifie les signaux présents dans le cache spécifié par cette clé. |
signal-counter-name |
Dans le cache (spécifié par l’Identifiant du signal de libération), les signaux peuvent appartenir à différents compteurs. Si cette propriété est spécifiée, le processeur vérifie le nombre de signaux présents dans le cache qui appartiennent à ce compteur particulier. Si elle n’est pas spécifiée, le processeur vérifie le nombre total de signaux dans le cache. |
target-signal-count |
Nombre de signaux devant être présents dans le cache (spécifié par l’Identifiant du signal de libération) pour que le FlowFile traité par le processeur Wait soit envoyé vers la relation “success”. Si le nombre de signaux dans le cache atteint cette valeur, le FlowFile est routé vers la relation “success” et le nombre de signaux dans le cache est diminué de cette valeur. Si Signal Counter Name est spécifié, ce processeur vérifie un compteur particulier ; sinon, il vérifie par rapport au nombre total de signaux dans le cache. |
wait-buffer-count |
Spécifiez le nombre maximum de FlowFiles entrants qui peuvent être mis en mémoire tampon pour vérifier s’ils peuvent avancer. Plus le tampon est grand, meilleures sont les performances, car cela réduit le nombre d’interactions avec le service de cache en regroupant les FlowFiles par identifiant de signal. Un seul identifiant de signal peut être traité par exécution de processeur. |
wait-mode |
Spécifie comment gérer un FlowFile en attente d’un signal de notification |
wait-penalty-duration |
Si configuré, lorsqu’un identifiant de signal a été traité mais n’a pas satisfait aux critères de libération, cet identifiant de signal est pénalisé et les FlowFiles ayant cet identifiant ne seront pas traités à nouveau pendant la période spécifiée, afin que cet identifiant ne bloque pas le traitement des autres. Cela peut être utile dans des cas d’utilisation où un processeur Wait doit traiter plusieurs identifiants de signal, et que chaque identifiant de signal comporte plusieurs FlowFiles, et que l’ordre de libération des FlowFiles est important au sein d’un identifiant de signal. L’ordre des FlowFile peut être configuré avec des Prioritizers. IMPORTANT : il existe une limite au nombre de signaux en file d’attente pouvant être traités, et le processeur Wait peut ne pas être en mesure de vérifier tous les identifiants de signaux en file d’attente. Voir Détails supplémentaires pour la meilleure pratique. |
Relations¶
Nom |
Description |
---|---|
expired |
UnFlowFile qui a dépassé la durée d’expiration configurée sera routée vers cette relation |
failure |
Lorsque le cache est inaccessible, ou si le Release Signal Identifier est évalué à null ou vide, les FlowFiles sont routés vers cette relation. |
success |
Un FlowFile avec un signal de libération correspondant dans le cache sera routé vers cette relation |
wait |
Un FlowFile sans signal de libération correspondant dans le cache sera routé vers cette relation |
Écrit les attributs¶
Nom |
Description |
---|---|
wait.start.timestamp |
Tous les FlowFiles auront un attribut “wait.start.timestamp”, qui définit l’horodatage initial (epoch) au moment où le fichier est entré pour la première fois dans ce processeur. Cet attribut est utilisé pour déterminer le délai d’expiration du FlowFile. Cet attribut n’est pas écrit lorsque le FlowFile est transféré vers failure, expired ou success. |
wait.counter.<counterName> |
Le nom de chaque compteur pour lequel au moins un signal a été présent dans le cache depuis la dernière fois que le cache était vide est copié dans le FlowFile actuel comme attribut. |