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.
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. |