Registro do tipo de fluxo de trabalho e atividade - 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á.

Registro do tipo de fluxo de trabalho e atividade

O Amazon SWF exige que os tipos de atividade e fluxo de trabalho sejam registrados antes de poderem ser usados. A estrutura registra automaticamente os fluxos de trabalho e as atividades nas implementações adicionadas ao operador. A estrutura procura por tipos que implementam fluxos de trabalho e atividades e os registra no Amazon SWF. Por padrão, a estrutura usa as definições de interface para inferir as opções de registro para os tipos de fluxo de trabalho e de atividade. Todas as interfaces de fluxo de trabalho precisam ter a anotação @WorkflowRegistrationOptions ou a anotação @SkipRegistration. O operador do fluxo de trabalho registra todos os tipos de fluxos de trabalho com os quais está configurado que possuem a anotação @WorkflowRegistrationOptions. Do mesmo modo, cada método de atividade precisa estar anotado com a anotação @ActivityRegistrationOptions ou a anotação @SkipRegistration, ou uma dessas anotações deve estar presente na interface @Activities. O operador da atividade registra todos os tipos de atividades com as quais está configurado e que possuem uma anotação @ActivityRegistrationOptions. O registro é realizado automaticamente ao iniciar um dos operadores. Tipos de fluxos de trabalho e de atividades que têm a anotação @SkipRegistration não são registrados. As anotações @ActivityRegistrationOptions e @SkipRegistration têm semântica de substituição e o mais específico é aplicado a um tipo de atividade.

Observe que o Amazon SWF não permite que você registre novamente ou modifique o tipo depois que ele foi registrado. A estrutura tentará registrar todos os tipos, mas se o tipo já está registrado ele não será registrado novamente e nenhum erro será relatado.

Se precisar modificar as configurações registadas, é necessário registrar uma nova versão do tipo. Você também pode substituir as configurações registradas ao iniciar uma nova execução ou ao chamar uma atividade que usa os clientes gerados.

O registro exige um nome do tipo e outras opções de registro. A implementação padrão determina as seguintes:

Nome e versão do tipo de fluxo de trabalho

A estrutura determina o nome do tipo de fluxo de trabalho a partir da interface do fluxo de trabalho. O formato do nome do tipo de fluxo de trabalho padrão é {prefixo}{nome}. O {prefixo} é definido como o nome da interface @Workflow seguido por um '.' e o {nome} é definido como o nome do método @Execute. O nome padrão do tipo de fluxo de trabalho no exemplo anterior é MyWorkflow.startMyWF. Você pode substituir o nome padrão usando o parâmetro nome do método @Execute. O nome padrão do tipo de fluxo de trabalho no exemplo é startMyWF. O nome não pode ser uma string vazia. Observe que ao substituir o nome usando @Execute, a estrutura não adiciona um prefixo automaticamente. Você está livre para usar o seu próprio esquema de nomenclatura.

A versão do fluxo de trabalho é especificada usando o parâmetro version da anotação @Execute. Não há um padrão para version e ele deve ser explicitamente especificado. O version é uma string de formato livre e você pode usar o seu próprio esquema de versionamento.

Nome do sinal

O nome do sinal pode ser especificado usando o parâmetro de nome da anotação @Signal. Se não especificado, ele assume o nome do método do sinal como padrão.

Nome e versão do tipo de atividade

A estrutura determina o nome do tipo de atividade a partir da interface de atividades. O formato do nome do tipo de atividade padrão é {prefixo}{nome}. O {prefixo} é definido como o nome da interface @Activities seguido por um '.' e o {nome} é definido como o nome do método. O {prefixo} padrão pode ser substituído na anotação @Activities na interface de atividades. Também é possível especificar o nome do tipo de atividade usando a anotação @Activity no método da atividade. Observe que ao substituir o nome usando @Activity, a estrutura não adicionará um prefixo automaticamente. Você está livre para usar o seu próprio esquema de nomenclatura.

A versão da atividade é especificada usando o parâmetro de versão da anotação @Activities. Essa versão é usada como padrão para todas as atividades definidas na interface e pode ser substituída para cada atividade usando a anotação @Activity.

Lista de tarefas padrão

A lista de tarefas padrão pode ser configurada usando as anotações @WorkflowRegistrationOptions e @ActivityRegistrationOptions e definindo o parâmetro defaultTaskList. Por padrão, ele é definido como USE_WORKER_TASK_LIST. Este é um valor especial que instrui a estrutura a usar a lista de tarefas que está configurada no objeto do operador usado para registrar o tipo de atividade ou de fluxo de trabalho. Você pode optar por não registrar uma lista de tarefas padrão configurando a lista de tarefas padrão como NO_DEFAULT_TASK_LIST usando essas anotações. Isso pode ser usada em casos onde deseja exigir que a lista de tarefas seja especificada durante o tempo de execução. Se nenhuma lista de tarefas padrão foi registrada, é necessário especificar a lista de tarefas ao iniciar o fluxo de trabalho ou ao chamar o método da atividade usando os parâmetros StartWorkflowOptions e ActivitySchedulingOptions na respectiva sobrecarga de método do cliente gerado.

Outras opções de registro

Todas as opções de registro de fluxo de trabalho e tipo de atividade permitidas pela API do Amazon SWF podem ser especificadas por meio da estrutura.

Para obter uma lista completa das opções de registro de fluxo de trabalho, consulte os seguintes:

Para obter uma lista completa das opções de registro de atividade, consulte os seguintes:

Se desejar ter controle total sobre o registro de tipo, consulte Extensibilidade de operadores.