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 que são 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 trabalhador 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 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 trabalhador poderão executar fluxos de prioridade mais baixa.
Os fluxos também perderão o valor de prioridade quando forem pausados por qualquer motivo. Os fluxos que são retomados a partir de uma pausa são executados com a 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 a execução do fluxo é retomada, 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 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 aguardando 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 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 Workflow Studio propriedades do sistema de fluxo para alterar o valor da propriedade com.glide.hub.pause_low_priority_flows_enabled.
Suporte de API rápida
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ápida 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 alta prioridade. Os threads de trabalhador usam a prioridade relativa entre fluxos para selecionar o trabalho. Se todos os fluxos forem executados com alta prioridade, não haverá fluxos de prioridade mais baixa para aguardar.
- Evite definir a 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 pausa perde seu valor de prioridade quando retoma a execução.
- Usar alta prioridade para fluxos críticos para os negócios
- Limite a alta prioridade a fluxos que têm alto valor comercial, são executados raramente e têm um tempo de execução curto. Evite definir fluxos de alto volume como alta prioridade, pois isso limita o número de threads de trabalhador disponíveis para executar outros fluxos. Um fluxo de alta prioridade de execução longa também pode reduzir os threads de trabalhador disponíveis para executar outros fluxos.
- Usar baixa prioridade 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 em comparação com outros fluxos.