Prioridade de fluxo
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 trabalhador disponível. Por padrão, Workflow Studio pode usar até metade dos threads de trabalho disponíveis para executar fluxos em segundo plano. Se não houver thread de trabalhador disponível para executar um fluxo, o fluxo será enfileirado até que haja um thread de trabalhador disponível para executá-lo.
- Alto(a)
- Média
- Baixo(a)
Definir uma prioridade de fluxo determina a ordem em que os threads de trabalhador selecionam 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 houver fluxos de prioridade mais alta na fila. Quando há uma fila de trabalho grande para executar, a maioria dos fluxos de baixa prioridade deve aguardar até que os fluxos de alta prioridade sejam executados. Após a execução dos fluxos de alta prioridade, os threads de trabalho podem executar fluxos de prioridade mais baixa.
Os fluxos também perdem seu valor de prioridade quando pausam por qualquer motivo. Fluxos que são retomados a partir de uma execução de pausa na prioridade Média padrão. Por exemplo, um fluxo pode começar a ser executado em alta prioridade e, em seguida, pausar para aguardar uma duração. Quando o fluxo recomeça a ser executado, ele é executado em uma Prioridade Média.
Pausa automática de fluxos de baixa prioridade
Por padrão, o sistema verifica se há casos em que fluxos de alta prioridade estão sendo bloqueados executando fluxos de prioridade mais baixa. Sempre que um fluxo de baixa prioridade é executado 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 aguardando execução na fila de eventos. Se houver um backlog de pelo menos 100 fluxos de alta prioridade aguardando execução 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 seus fluxos de baixa prioridade não estiverem sendo executados conforme o esperado, revise o número de fluxos de alta prioridade gerados e executados pelo sistema. Consulte as considerações de design para saber quando definir um fluxo como prioridade alta ou baixa. Se seus 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 Workflow Studio propriedades do sistema de fluxo 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ápida retém as configurações de prioridade. Os fluxos executados pelo método de API rápida são executados na mesma prioridade que foi definida anteriormente para o fluxo.
Considerações de design
Siga estas considerações de design ao definir a prioridade de fluxo.
- Evite definir todos os fluxos para serem executados em alta prioridade
- Use uma combinação de prioridades em vez de definir todos os fluxos como prioridade alta. Os threads de trabalhador usam a prioridade relativa entre fluxos para selecionar o trabalho. Se todos os seus fluxos forem executados em alta prioridade, não haverá fluxos de prioridade mais baixa para fazer espera.
- Evite definir a prioridade de fluxo para fluxos que precisam ser pausados
- Mantenha fluxos que precisam pausar na prioridade média padrão, pois um fluxo que pausa perde seu valor de prioridade quando reinicia a execução.
- Use alta prioridade para fluxos críticos para os negócios
- Limite a alta prioridade 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 prioridade alta, 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.
- Use prioridade baixa para fluxos de alto volume
- Execute fluxos de alto volume com prioridade baixa para que outros fluxos sensíveis ao tempo possam ser executados primeiro. Fluxos de baixa prioridade não devem ser sensíveis ao tempo.
- Use 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.