Como fazer alterações no código do agente de decisão: sinalizadores de versionamento e de recursos - AWS Flow Framework para Java

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á.

Como fazer alterações no código do agente de decisão: sinalizadores de versionamento e de recursos

Esta seção mostra como evitar alterações incompatíveis com versões anteriores em um agente de decisão usando dois métodos:

Antes de testar essas soluções, familiarize-se com a seção Cenário de exemplo que explica as causas e os efeitos de alterações incompatíveis com versões anteriores do agente de decisão.

As alterações do processo de reprodução e do código

Quando um AWS Flow Framework para o Java decider worker executa uma tarefa de decisão, ele primeiro precisa reconstruir o estado atual da execução antes de poder adicionar etapas a ela. O agente de decisão faz isso usando um processo chamado reprodução.

O processo de reprodução executa novamente o código do agente de decisão desde o início e, simultaneamente, passa pelo histórico de eventos que já ocorreram. A passagem pelo histórico de eventos permite que a estrutura reaja a sinais ou a conclusão de tarefas e desbloqueie objetos Promise no código.

Quando a estrutura executa o código de decisão, ela atribui um ID a cada tarefa agendada (uma atividade, função Lambda, cronômetro, fluxo de trabalho filho ou sinal de saída) incrementando um contador. A estrutura comunica esse ID ao Amazon SWF e adiciona o ID aos eventos do histórico, como ActivityTaskCompleted.

Para que o processo de reprodução tenha êxito, é importante que o código do agente de decisão seja determinista e que programe as mesmas tarefas na mesma ordem para cada decisão em cada execução do fluxo de trabalho. Se você não seguir esse requisito, a estrutura poderá, por exemplo, não corresponder o ID em um evento ActivityTaskCompleted para um objeto Promise existente.