Wait 2025.5.31.15

Pacote

org.apache.nifi | nifi-standard-nar

Descrição

Encaminha os FlowFiles de entrada para a relação “wait” até que um sinal de liberação correspondente seja armazenado no cache distribuído de um processador Notify correspondente. Quando um sinal de liberação correspondente é identificado, um FlowFile em espera é encaminhado para a relação “success”. A entrada do sinal de liberação é então removida do cache. Os atributos do FlowFile que produziu o sinal de liberação são copiados para o FlowFile em espera se a propriedade Regex de cache de atributo (Attribute Cache Regex) do processador Notify correspondente estiver definida corretamente. Se houver vários sinais de lançamento no cache identificados pelo Identificador de sinal de liberação (Release Signal Identifier) e o processador Notify estiver configurado para copiar os lançamentos do FlowFile para o cache, então o FlowFile que passa pelo processador Wait recebe a união dos atributos dos FlowFiles que produziu os sinais de lançamento no cache (identificados pelo Identificador de sinal de liberação). A espera por FlowFiles será encaminhada para “expired” se exceder a duração da expiração. Se você precisar esperar por mais de um sinal, especifique o número desejado de sinais por meio da propriedade “Contagem de sinal de destino” (Target Signal Count). Isso é particularmente útil com processadores que dividem um FlowFile de origem em vários fragmentos, como o SplitText. Para esperar que todos os fragmentos sejam processados, conecte a relação “original” a um processador Wait e a relação “splits” a um processador Notify correspondente. Configure os processadores Notify e Wait para usar o “${fragment.identifier}” como o valor de “Identificador de sinal de liberação” e especifique “${fragment.count}” como o valor de “Contagem de sinal de destino” no processador Wait. Recomenda-se usar um priorizador (por exemplo, primeiro a entrar, primeiro a sair) ao usar a relação “wait” como um 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