Compartilhar via


Práticas recomendadas para processos de fluxo de trabalho em segundo plano

Este tópico inclui práticas recomendadas para criar e gerenciar processos do fluxo de trabalho em segundo plano.

Evite loops infinitos

É possível criar a lógica em um fluxo de trabalho em segundo plano que inicia um loop infinito, que consome recursos do servidor e afeta o desempenho. A situação comum onde um loop infinito pode ocorrer se você tiver um fluxo de trabalho em segundo plano configurado para ser iniciado quando uma coluna é atualizada e atualiza essa coluna na lógica do fluxo de trabalho. A ação de atualização aciona o mesmo fluxo de trabalho em segundo plano que atualiza a linha e aciona o fluxo de trabalho em segundo plano repetidas vezes.

Os fluxos de trabalho criados incluem lógica para detectar e interromper loops infinitos. Se um processo do fluxo de trabalho em segundo plano é executado mais de um determinado número de vezes em uma linha específica em um curto período de tempo, o processo falha com o seguinte erro: Essa tarefa do fluxo de trabalho foi cancelada porque o fluxo de trabalho que a iniciou incluiu um loop infinito. Corrija a lógica do fluxo de trabalho e tente novamente. O limite de vezes é 16.

Use modelos de fluxo de trabalho em segundo plano

Se você tiver fluxos de trabalho semelhantes e antecipar a criação de mais fluxos de trabalho que sigam o mesmo padrão, salve o fluxo de trabalho em segundo plano como um modelo do fluxo de trabalho. Dessa forma, a próxima vez que você precisar criar um fluxo de trabalho semelhante, use o modelo para criar o fluxo de trabalho em segundo plano e evite inserir todas as condições e ações do zero.

Na caixa de diálogo Criar Processo, escolha Novo processo de um modelo existente (selecione na lista).

Usar fluxos de trabalho secundários

Se você aplicar a mesma lógica em fluxos de trabalho diferentes ou em ramificações condicionais, defina essa lógica como fluxo de trabalho secundário para que não precise replicar essa lógica manualmente em cada fluxo de trabalho em segundo plano ou ramificação condicional. Isso ajuda a tornar seus fluxos de trabalho mais fáceis de manter. Em vez de examinar vários fluxos de trabalho que podem aplicar a mesma lógica, é possível apenas atualizar um fluxo de trabalho.

Exclusão automática de trabalhos de fluxo de trabalho em segundo plano concluídos

Para fluxos de trabalho em segundo plano (assíncronos), é recomendável selecionar a opção Excluir automaticamente trabalhos de fluxo de trabalho concluídos (para economizar espaço em disco) na definição de fluxo de trabalho em segundo plano. Marcar essa caixa de seleção permite que o sistema exclua os logs de fluxo de trabalho em segundo plano para execuções com êxito para economizar espaço. Observe que os logs de execuções de fluxo de trabalho em segundo plano com falha serão sempre salvos para solução de problemas.

Retenção da tarefa do fluxo de trabalho.

Limitar a quantidade de fluxos de trabalho que atualizam a mesma tabela

Executar mais de um fluxo de trabalho em segundo plano que atualiza a mesma tabela pode causar problemas de bloqueio de recurso. Imagine vários fluxos de trabalho sendo executados onde toda atualização de oportunidade aciona uma atualização da conta associada. Várias instâncias desses fluxos de trabalho sendo executadas e tentando atualizar a mesma linha de conta ao mesmo tempo podem resultar em problemas de bloqueio de recurso. Falhas de fluxo de trabalho em segundo plano acontecem e uma mensagem de erro, como Tempo limite do SQL: não foi possível obter bloqueio no recurso nome do recurso, é registrada.

Usar as anotações para acompanhar alterações

Ao editar fluxos de trabalho, você deve usar a guia Anotações e digitar o que fez e por que. Isso permite que outros compreendam as alterações feitas.

Próximas etapas

Configurar processos de fluxo de trabalho em segundo plano
Monitorar e gerenciar processos de fluxo de trabalho em segundo plano