Wait 2025.10.2.19

Pacote

org.apache.nifi | nifi-standard-nar

Descrição

Routes incoming FlowFiles to the “wait” relationship until a matching release signal is stored in the distributed cache from a corresponding Notify processor. When a matching release signal is identified, a waiting FlowFile is routed to the “success” relationship. The release signal entry is then removed from the cache. The attributes of the FlowFile that produced the release signal are copied to the waiting FlowFile if the Attribute Cache Regex property of the corresponding Notify processor is set properly. If there are multiple release signals in the cache identified by the Release Signal Identifier, and the Notify processor is configured to copy the FlowFile attributes to the cache, then the FlowFile passing the Wait processor receives the union of the attributes of the FlowFiles that produced the release signals in the cache (identified by Release Signal Identifier). Waiting FlowFiles will be routed to “expired” if they exceed the Expiration Duration. If you need to wait for more than one signal, specify the desired number of signals via the “Target Signal Count” property. This is particularly useful with processors that split a source FlowFile into multiple fragments, such as SplitText. In order to wait for all fragments to be processed, connect the “original” relationship to a Wait processor, and the “splits” relationship to a corresponding Notify processor. Configure the Notify and Wait processors to use the “${fragment.identifier}” as the value of “Release Signal Identifier”, and specify “${fragment.count}” as the value of “Target Signal Count” in the Wait processor. It is recommended to use a prioritizer (for instance First In First Out) when using the “wait” relationship as a loop.

Tags

cache, distributed, hold, map, release, signal, wait

Requisito de entrada

REQUIRED

Oferece suporte a propriedades dinâmicas confidenciais

falso

Propriedades

Propriedade

Descrição

attribute-copy-mode

Especifica como lidar com atributos copiados de FlowFiles que entram no processador Notify

distributed-cache-service

O Controller Service usado para verificar os sinais de lançamento de um processador Notify correspondente

expiration-duration

Indica a duração após a qual os FlowFiles em espera serão encaminhados para a relação “expired”

releasable-flowfile-count

Um valor, ou os resultados de uma instrução de linguagem de expressão de atributo, que será avaliado em relação a um FlowFile para determinar a contagem de FlowFile liberável. Isso especifica quantos FlowFiles podem ser lançados quando uma contagem de destino atinge a contagem de sinal de destino. Zero (0) tem um significado especial; qualquer número de FlowFiles pode ser liberado, desde que a contagem de sinais corresponda ao destino.

release-signal-id

Um valor que especifica a chave para um cache de sinal de liberação específico. Para decidir se o FlowFile que está sendo processado pelo processador Wait deve ser enviado para a relação “success” ou “wait”, o processador verifica os sinais no cache especificado por essa chave.

signal-counter-name

Dentro do cache (especificado pelo Identificador de sinal de liberação), os sinais podem pertencer a diferentes contadores. Se essa propriedade for especificada, o processador verificará o número de sinais no cache que pertencem a esse contador específico. Se não for especificado, o processador verifica o número total de sinais no cache.

target-signal-count

O número de sinais que precisam estar no cache (especificado pelo Identificador de sinal de liberação) para que o FlowFile processado pelo processador de espera seja enviado para a relação “success”. Se o número de sinais no cache tiver atingido esse número, o FlowFile será encaminhado para a relação “success” e o número de sinais no cache será reduzido nesse valor. Se Nome do contador de sinais for especificado, esse processador verifica um contador específico; caso contrário, verifica o número total de sinais no cache.

wait-buffer-count

Especifique o número máximo de FlowFiles de entrada que podem ser armazenados em buffer para verificar se é possível avançar. Quanto maior o buffer, melhor o desempenho, pois ele reduz o número de interações com o serviço de cache ao agrupar FlowFiles por identificador de sinal. Somente um identificador de sinal pode ser processado em uma execução do processador.

wait-mode

Especifica como lidar com um FlowFile aguardando um sinal de notificação

wait-penalty-duration

Se configurado, depois que um identificador de sinal for processado, mas não atender aos critérios de liberação, o identificador de sinal será penalizado e os FlowFiles que tiverem o identificador de sinal não serão processados novamente pelo período de tempo especificado, para que o identificador de sinal não bloqueie o processamento de outros. Isso pode ser útil para casos de uso em que se espera que um processador de espera processe vários identificadores de sinal, e cada identificador de sinal tem vários FlowFiles, e também a ordem de liberação de FlowFiles é importante dentro de um identificador de sinal. A ordem de FlowFile pode ser configurada com priorizadores. Importante: há uma limitação do número de sinais enfileirados que podem ser processados, e o processador de espera pode não conseguir verificar todos os IDs de sinais enfileirados. Consulte os detalhes adicionais sobre práticas recomendadas.

Relações

Nome

Descrição

expired

Um FlowFile que tenha excedido a duração de expiração configurada será encaminhado para essa relação

failure

Quando não for possível acessar o cache ou se o Identificador de sinal de liberação (Release Signal Identifier) for avaliado como nulo ou vazio, os FlowFiles serão encaminhados para essa relação

success

Um FlowFile com um sinal de liberação correspondente no cache será encaminhado para essa relação

wait

Um FlowFile sem sinal de liberação correspondente no cache será encaminhado para essa relação

Grava atributos

Nome

Descrição

wait.start.timestamp

Todos os FlowFiles terão um atributo “wait.start.timestamp”, que define o carimbo de data/hora inicial da época em que o arquivo entrou pela primeira vez nesse processador. Isso é usado para determinar o tempo de expiração do FlowFile. Esse atributo não é gravado quando o FlowFile é transferido para failure, expired ou success

wait.counter.<counterName>

O nome de cada contador para o qual pelo menos um sinal está presente no cache desde a última vez que o cache foi esvaziado é copiado para o FlowFile atual como um atributo.

Consulte também