Fluxo de trabalho secundários - Amazon Simple Workflow Service

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Fluxo de trabalho secundários

Fluxos de trabalho complicados podem ser divididos em componentes menores, mais gerenciáveis e potencialmente reutilizáveis​usando fluxos de trabalho secundários. Um fluxo de trabalho secundário é uma execução de fluxo de trabalho iniciada por outra execução de fluxo de trabalho (principal). Para iniciar um fluxo de trabalho secundário, o agente de decisão do fluxo de trabalho principal usa a decisão StartChildWorkflowExecution. Os dados de entrada especificados com essa decisão são disponibilizados ao fluxo de trabalho secundário por meio do seu histórico.

Os atributos da decisão StartChildWorkflowExecution também especificam a política do filho, ou seja, como o Amazon SWF deve lidar com a situação em que a execução do fluxo de trabalho pai termina antes da execução do fluxo de trabalho filho. Existem três valores possíveis:

  • TERMINATE: o Amazon SWF encerrará as execuções secundárias.

  • REQUEST_CANCEL: o Amazon SWF tentará cancelar a execução do filho colocando um evento <> no histórico de execução do fluxo de trabalho do filho.

  • ABANDON: o Amazon SWF não tomará nenhuma ação; as execuções secundárias continuarão a ser executadas.

Após o início da execução de fluxo de trabalho secundário, ela é processada como uma execução comum. Quando é concluído, o Amazon SWF registra a conclusão, juntamente com seus resultados, no histórico do fluxo de trabalho da execução do fluxo de trabalho pai. Exemplos de fluxos de trabalho secundários incluem:

  • Fluxo de trabalho secundário de processamento de cartão de crédito usado por fluxos de trabalho em diferentes sites

  • Fluxo de trabalho secundário de e-mail que verifica o endereço de e-mail do cliente, verifica a lista de exclusões, envia o e-mail e verifica se ele não foi retornado ou falhou.

  • Fluxo de trabalho secundário de armazenamento de banco de dados e recuperação, que combina conexão, configuração, transação e verificação.

  • Fluxo de trabalho secundário de compilação de código-fonte, que combina desenvolvimento, empacotamento e verificação.

No exemplo do comércio eletrônico, você pode querer transformar a atividade Debitar o cartão de crédito em um fluxo de trabalho secundário. Para fazer isso, você pode registrar um novo fluxo de trabalho Verificar o cliente, registrar as atividades Verificar o endereço do cliente e Verificar o banco de dados fraudes e definir a lógica de coordenação para as tarefas. Em seguida, um agente de decisão no fluxo de trabalho de Pedido do cliente pode iniciar um fluxo de trabalho secundário Verificar o cliente, agendando a decisão StartChildWorkflowExecution que especifica esse tipo de fluxo de trabalho.

A figura a seguir mostra um fluxo de trabalho de pedido do cliente que inclui um novo fluxo de trabalho secundário Verificar o cliente, que verifica o endereço do cliente, pesquisa o banco de dados de fraudes e debita o cartão de crédito.

Diagrama de fluxo de trabalho secundário

Vários fluxos de trabalho podem criar execuções de fluxos de trabalho secundários usando o mesmo tipo de fluxo de trabalho. Por exemplo, o fluxo de trabalho secundário Verificar o cliente também pode ser usado em outras partes de uma organização. Os eventos de um fluxo de trabalho secundário estão contidos em seu próprio histórico de fluxo de trabalho e não estão incluídos no histórico de fluxo de trabalho do elemento principal.

Como fluxos de trabalho secundários são simplesmente execuções de fluxo de trabalho iniciadas por um agente de decisão, elas também podem ser iniciadas como execuções de fluxos de trabalho independentes normais.