Prioridade de fluxo

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 4 min. de leitura
  • Especifique a prioridade que você deseja que um fluxo em segundo plano tenha em relação a outros fluxos que aguardam para serem executados. Execute um grupo de fluxos de prioridade mais alta antes de executar qualquer fluxo de prioridade mais baixa.

    Você só pode definir uma prioridade de fluxo para fluxos executados em segundo plano. Os fluxos em segundo plano são executados a partir do próximo thread de trabalho disponível. Por padrão, Flow Designer pode usar até metade dos threads de trabalho disponíveis para executar fluxos em segundo plano. Se não houver nenhum thread de trabalho disponível para executar um fluxo, o fluxo será enfileirado até que haja um thread de trabalho disponível para executá-lo.

    Você pode definir fluxos em segundo plano para que tenham um desses valores de prioridade.
    • Alta
    • Média 
    • Baixo
    Por padrão, os fluxos em segundo plano são executados com prioridade média.
    Nota:
    Os fluxos executados em primeiro plano são executados no thread atual e não usam a prioridade de fluxo para determinar a ordem de execução.

    Definir uma prioridade de fluxo determina a ordem em que os threads de trabalho selecionam os fluxos da fila. Os threads de trabalho executam vários fluxos de prioridade mais alta antes de executar um fluxo de prioridade mais baixa. Este esquema de prioridade garante que alguns fluxos de prioridade mais baixa sejam executados mesmo quando há fluxos de prioridade mais alta na fila. Quando há uma grande fila de trabalho para executar, a maioria dos fluxos de baixa prioridade deve aguardar até que os fluxos de alta prioridade sejam executados. Depois que os fluxos de alta prioridade forem executados, os threads de trabalho poderão executar fluxos de prioridade mais baixa.

    Se um fluxo permanecer na fila por mais de cinco minutos, o sistema delega o fluxo a outro nó para ser executado. Quando um fluxo é delegado a outro nó, ele perde seu valor de prioridade. Um nó delegado extrai fluxos da fila de eventos em ordem cronológica. O nó delegado executa os fluxos mais antigos primeiro e, em seguida, os fluxos mais recentes. Geralmente, a delegação de fluxos para execução de outro nó só acontece quando todos os threads de trabalho disponíveis em um nó estão ocupados.
    Nota:
    Os threads de trabalho executam todos os eventos do sistema, não apenas os eventos de fluxo.

    Os fluxos também perderão o valor de prioridade quando forem pausados por qualquer motivo. Fluxos que retomam de uma pausa são executados na prioridade média padrão. Por exemplo, um fluxo pode começar a ser executado com alta prioridade e, em seguida, pausar para Aguardar uma Duração. Quando o fluxo retoma a execução, ele é executado com uma prioridade Média.

    Pausa automática de fluxos de baixa prioridade

    Por padrão, o sistema verifica os casos em que os fluxos de alta prioridade estão sendo bloqueados pela execução de fluxos de prioridade mais baixa. Sempre que uma prioridade baixa é executada por mais de dois minutos, o sistema verifica se algum fluxo de prioridade mais alta foi executado nos últimos cinco minutos. Se nenhum fluxo de alta prioridade tiver sido executado recentemente, o sistema verificará o número de fluxos que aguardam para serem executados na fila de eventos. Se houver um backlog de pelo menos 100 fluxos de alta prioridade aguardando para serem executados na fila de eventos, o sistema pausará o fluxo de baixa prioridade em execução. Pausar um fluxo preserva seu contexto e seus dados. Um fluxo pausado retorna à fila de eventos para ser executado quando há um trabalhador disponível para processá-lo.

    Se os fluxos de baixa prioridade não estiverem sendo executados conforme o esperado, revise o número de fluxos de alta prioridade que o sistema gera e executa. Consulte as considerações de design para saber quando definir um fluxo como prioridade alta ou baixa. Se os fluxos de baixa prioridade ainda não estiverem em execução, você poderá desabilitar a pausa de baixa prioridade com uma propriedade do sistema. Consulte Propriedades do sistema Flow Designer para mudar o valor da propriedade com.glide.hub.pause_low_priority_flows_enabled.

    Suporte rápido de API

    O método de API rápido não é compatível com valores de prioridade de fluxo. Os fluxos executados pelo método de API rápido ignoram todas as configurações de prioridade de fluxo definidas anteriormente e, em vez disso, são executados com prioridade Média.

    Considerações de design

    Siga estas considerações de design ao definir a prioridade de fluxo.

    Evite definir todos os fluxos para serem executados com alta prioridade
    Use uma combinação de prioridades em vez de definir todos os fluxos com prioridade alta. Os threads de trabalho usam a prioridade relativa entre os fluxos para selecionar o trabalho. Se todos os fluxos forem executados com prioridade alta, não haverá fluxos de prioridade mais baixa para aguardar.
    Evite definir prioridade de fluxo para fluxos que precisam ser pausados
    Mantenha os fluxos que precisam ser pausados na prioridade média padrão, já que um fluxo que é pausado perde seu valor de prioridade ao retomar a execução.
    Usar prioridade alta para fluxos críticos para os negócios
    Limite a prioridade alta a fluxos que tenham alto valor comercial, sejam executados raramente e tenham um tempo de execução curto. Evite definir fluxos de alto volume como alta prioridade, pois isso limita o número de threads de trabalho disponíveis para executar outros fluxos. Um fluxo de alta prioridade de longa execução também pode reduzir os threads de trabalho disponíveis para executar outros fluxos.
    Usar prioridade baixa para fluxos de alto volume
    Execute fluxos de alto volume em baixa prioridade para que outros fluxos sensíveis ao tempo possam ser executados primeiro. Fluxos de baixa prioridade não devem ser sensíveis ao tempo.
    Usar prioridade média para fluxos sensíveis ao tempo
    Use a prioridade de fluxo padrão quando um fluxo tiver alguma urgência de tempo quando comparado a outros fluxos.