Um fluxo de trabalho no estado de espera consome recursos do sistema, pois ele sonda constantemente o objeto do qual ele requer uma resposta. Se você souber que um fluxo de trabalho poderá aguardar por um longo período antes de receber a resposta necessária, você poderá adicionar elementos de fluxo de trabalho de longa execução ao fluxo de trabalho.

Cada fluxo de trabalho em execução consome um thread do sistema. Quando um fluxo de trabalho atinge um elemento de fluxo de trabalho de longa execução, o elemento de fluxo de trabalho de longa execução coloca o fluxo de trabalho em um estado passivo. Em seguida, o elemento de fluxo de trabalho de longa duração passa as informações de fluxo de trabalho para um único thread que sonda o sistema em busca de todos os elementos de fluxo de trabalho de longa execução sendo executados no servidor. Em vez de cada elemento de fluxo de trabalho de longa duração tentar recuperar constantemente informações do sistema, os elementos de fluxo de trabalho de longa execução permanecem passivos por uma duração definida, enquanto o segmento de fluxo de trabalho de longa execução sonda o sistema em seu nome.

A duração do período de espera é definida de uma das seguintes maneiras:

  • Defina um timer, encapsulado em um objeto Date, que suspende o fluxo de trabalho até uma determinada hora e data. Implemente elementos de fluxo de trabalho de longa execução baseados em um timer. Para isso, inclua um elemento Timer de espera no esquema.
  • Defina um evento de gatilho, encapsulado em um objeto Trigger, que reinicia o fluxo de trabalho após a ocorrência do evento de gatilho. Implemente elementos de fluxo de trabalho de longa execução baseados em um gatilho. Para isso, inclua um elemento Evento de espera ou Interação do usuário no esquema.