Wait 2025.10.2.19¶
Pacote¶
org.apache.nifi | nifi-standard-nar
Descrição¶
Encaminha FlowFiles recebidos para o relacionamento “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 o relacionamento “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 de espera se a propriedade Attribute Cache Regex do processador Notify correspondente estiver definida corretamente. Se houver vários sinais de liberação no cache com um identificador de sinal de liberação e o processador Notify estiver configurado para copiar os atributos do FlowFile para o cache, então o FlowFile que passa o processador Wait recebe a união dos atributos dos FlowFiles que produziram os sinais de liberação no cache (identificados pelo identificador de sinal de liberação). Os FlowFiles em espera serão encaminhados para “expired” se excederem a Duração de expiração. Se você precisar esperar por mais de um sinal, especifique o número desejado de sinais por meio da propriedade “Target Signal Count”. Isso é particularmente útil com processadores que dividem um FlowFile de origem em vários fragmentos, tais como SplitText. Para esperar que todos os fragmentos sejam processados, conecte o relacionamento “original” a um processador Wait, e o relacionamento “splits” a um processador Notify correspondente. Configure os processadores Notify e Wait para usar !${fragment.identifier}” como o valor de “Release Signal Identifier” e especifique “${fragment.count}” como o valor de “Target Signal Count” no processador Wait. Recomenda-se usar um priorizador (por exemplo Primeiro a entrar, primeiro a sair) ao usar o relacionamento “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. |