AWS Flow Framework para anotações Java - 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á.

AWS Flow Framework para anotações Java

@Atividades

Essa anotação pode ser usada em uma interface para declarar um conjunto de tipos de atividade. Cada método em uma interface anotada com essa anotação representa um tipo de atividade. Uma interface não pode ter anotações @Workflow e @Activities

Os seguintes parâmetros podem ser especificados nessa anotação:

activityNamePrefix

Especifica o prefixo do nome dos tipos de atividade declarados na interface. Se for definido como uma sequência vazia (padrão), o nome da interface, seguido por '.', será usado como prefixo.

version

Especifica a versão padrão dos tipos de atividade declarados na interface. O valor padrão é 1.0.

dataConverter

Especifica o tipo de DataConverter a ser usado para serialização/desserialização de dados ao criar tarefas desse tipo de atividade e seus resultados. Definido como NullDataConverter por padrão, o que indica que o JsonDataConverter deve ser usado.

@Atividades

Essa anotação pode ser usada em métodos em uma interface anotada com @Activities.

Os seguintes parâmetros podem ser especificados nessa anotação:

name

Especifica o nome do tipo de atividade. O padrão é uma sequência vazia, o que indica que o prefixo padrão e o nome do método de atividades devem ser usados para determinar o nome do tipo de atividade (que tem o formato {prefixo}{nome}). Observe que quando você especifica um nome em uma anotação @Activity, a estrutura não precede um prefixo automaticamente a ele. Você está livre para usar o seu próprio esquema de nomenclatura.

version

Especifica a versão do tipo da atividade. Substitui a versão padrão especificada na anotação @Activities na interface que a contém. O padrão é uma string vazia.

@ActivityRegistrationOptions

Especifica as opções de registro de um tipo de atividade. Essa anotação pode ser usada em uma interface anotada com @Activities ou com os métodos dentro dela. Se especificada nos dois lugares, a anotação usada no método entrará em vigor.

Os seguintes parâmetros podem ser especificados nessa anotação:

defaultTasklist

Especifica a lista de tarefas padrão a ser registrada no Amazon SWF para esse tipo de atividade. Esse padrão pode ser substituído ao chamar o método de atividade no cliente gerado usando o parâmetro ActivitySchedulingOptions. Definida como USE_WORKER_TASK_LIST por padrão. Esse é um valor especial que indica que a lista de tarefas usada pelo operador, que está executando o registro, deve ser usada.

defaultTaskScheduleToStartTimeoutSeconds

Especifica o defaultTaskScheduleToStartTimeout registrado no Amazon SWF para esse tipo de atividade. Esse é o tempo máximo que uma tarefa desse tipo de atividade tem permissão para aguardar antes de ser atribuída a um operador. Consulte a referência da API do Amazon Simple Workflow Service para obter mais detalhes.

defaultTaskHeartbeatTimeoutSeconds

Especifica o defaultTaskHeartbeatTimeout registrado no Amazon SWF para esse tipo de atividade. Os operadores de atividades devem fornecer pulsação dentro dessa duração. Caso contrário, o tempo limite da tarefa será esgotado. Definido como -1 por padrão, que é um valor especial que indica que esse tempo limite deve ser desativado. Consulte a referência da API do Amazon Simple Workflow Service para obter mais detalhes.

defaultTaskStartToCloseTimeoutSeconds

Especifica o defaultTaskStartToCloseTimeout registrado no Amazon SWF para esse tipo de atividade. Esse tempo limite determina o tempo máximo que um operador pode usar para processar uma tarefa de atividade desse tipo. Consulte a referência da API do Amazon Simple Workflow Service para obter mais detalhes.

defaultTaskScheduleToCloseTimeoutSeconds

Especifica o defaultScheduleToCloseTimeout registrado no Amazon SWF para esse tipo de atividade. Esse tempo limite determina a duração total na qual uma tarefa pode permanecer em estado aberto. Definido como -1 por padrão, que é um valor especial que indica que esse tempo limite deve ser desativado. Consulte a referência da API do Amazon Simple Workflow Service para obter mais detalhes.

@Assíncrono

Quando usada em um método na lógica de coordenação do fluxo de trabalho, indica que o método deve ser executado de forma assíncrona. Uma chamada ao método retornará imediatamente, mas a execução real ocorrerá de forma assíncrona quando todos os parâmetros de Promise<> passados para os métodos estiverem prontos. Os métodos anotados com @Asynchronous devem ter um tipo de retorno de Promise<> ou nulo.

daemon

Indica se a tarefa criada para o método assíncrono deve ser uma tarefa de daemon. Por padrão, False.

@Execute

Quando usada em um método em uma interface anotada com a anotação @Workflow, identifica o ponto de entrada do fluxo de trabalho.

Importante

Apenas um método na interface pode ser decorado com @Execute.

Os seguintes parâmetros podem ser especificados nessa anotação:

name

Especifica o nome do tipo do fluxo de trabalho. Se não estiver definido, o nome padrão será {prefixo}{nome}, em que {prefixo} é o nome da interface do fluxo de trabalho seguido por um '.' e {nome} é o nome do método atribuído a @Execute no fluxo de trabalho.

version

Especifica a versão do tipo do fluxo de trabalho.

@ExponentialRetry

Quando usada em uma atividade ou método assíncrono, define uma política de repetição exponencial se o método gerar uma exceção não tratada. Uma tentativa de repetição é feita depois de um período de recuo, que é calculado pela potência do número de tentativas.

Os seguintes parâmetros podem ser especificados nessa anotação:

intialRetryIntervalSeconds

Especifica a duração da espera antes da primeira tentativa de repetição. Esse valor deve ser maior que ou igual a maximumRetryIntervalSeconds e retryExpirationSeconds.

maximumRetryIntervalSeconds

Especifica a duração máxima entre tentativas de repetição. Após atingido, o intervalo de repetição é limitado a esse valor. Definido como -1 por padrão, o que significa duração ilimitada.

retryExpirationSeconds

Especifica a duração depois da qual a repetição exponencial será interrompida. Definido como -1 por padrão, o que significa que não há expiração.

backoffCoefficient

Especifica o coeficiente usado para calcular o intervalo de repetição. Consulte Estratégia de repetição exponencial.

maximumAttempts

Especifica o número de tentativas depois do qual a repetição exponencial será interrompida. Definido como -1 por padrão, o que significa que não há nenhum limite no número de tentativas de repetição.

exceptionsToRetry

Especifica a lista de tipos de exceção que devem acionar uma repetição. Uma exceção não tratada desses tipos não será mais propagada, e o método será repetido depois do intervalo calculado de repetição. Por padrão, a lista contém Throwable.

excludeExceptions

Especifica a lista de tipos de exceção que não devem acionar uma repetição. As exceções não tratadas desse tipo terão permissão para propagar. A lista está vazia por padrão.

@GetState

Quando usada em um método em uma interface anotada com a anotação @Workflow, identifica que o método é usado para recuperar o último estado de execução do fluxo de trabalho. Deve haver no máximo um método com essa anotação em uma interface com a anotação @Workflow. Os métodos com essa anotação não devem usar nenhum parâmetro e devem ter um tipo de retorno diferente de void.

@ManualActivityCompletion

Essa anotação pode ser usada em um método de atividade para indicar que a tarefa de atividade não deve ser concluída quando o método retornar. A tarefa da atividade não será concluída automaticamente e precisará ser concluída manualmente, usando diretamente a API do Amazon SWF. Isso é útil para casos de uso em que a tarefa de atividade é delegada para um sistema externo que não é automatizado ou requer intervenção humana para ser concluído.

@Signal

Quando usada em um método em uma interface anotada com a anotação @Workflow, identifica um sinal que pode ser recebido por execuções do tipo de fluxo de trabalho declarado pela interface. O uso dessa anotação é necessário para definir um método de sinal.

Os seguintes parâmetros podem ser especificados nessa anotação:

name

Especifica a parte do nome do sinal. Se não definido, o nome do método será usado.

@SkipRegistration

Quando usado em uma interface anotada com a anotação @Workflow, indica que o tipo de fluxo de trabalho não deve ser registrado no Amazon SWF. Uma das anotações @WorkflowRegistrationOptions e @SkipRegistrationOptions deve ser usada em uma interface anotada com @Workflow, mas não ambas.

@Wait e @NoWait

Essas anotações podem ser usadas em um parâmetro do tipo Promise<> para indicar se o AWS Flow Framework do Java deve esperar que ele fique pronto antes de executar o método. Por padrão, os parâmetros Promise<> passados para métodos @Asynchronous devem estar prontos para que a execução do método ocorra. Em determinadas situações, é necessário substituir esse comportamento padrão. Os parâmetros Promise<> passados em métodos @Asynchronous e anotados com @NoWait não são esperados.

Parâmetros de coleções (ou subclasses de) que contêm promessas, como List<Promise<Int>>, devem ser anotados com a anotação @Wait. Por padrão, a estrutura não espera os membros de uma coleção.

@Fluxo de trabalho

Essa anotação é usada em uma interface para declarar um tipo de fluxo de trabalho. Uma interface decorada com essa anotação deve conter exatamente um método decorado com a anotação @Execute para declarar um ponto de entrada para o fluxo de trabalho.

nota

Uma interface não pode ter as duas anotações @Workflow e @Activities declaradas de uma vez pois são mutuamente exclusivas.

Os seguintes parâmetros podem ser especificados nessa anotação:

dataConverter

Especifica qual DataConverter usar ao enviar solicitações e receber resultados das execuções de fluxo de trabalho desse tipo de fluxo de trabalho.

O padrão é NullDataConverter que, por sua vez, retorna para JsonDataConverter para processar todos os dados da solicitação e da resposta como JavaScript Object Notation (JSON).

Exemplo

import com.amazonaws.services.simpleworkflow.flow.annotations.Execute; import com.amazonaws.services.simpleworkflow.flow.annotations.Workflow; import com.amazonaws.services.simpleworkflow.flow.annotations.WorkflowRegistrationOptions; @Workflow @WorkflowRegistrationOptions(defaultExecutionStartToCloseTimeoutSeconds = 3600) public interface GreeterWorkflow { @Execute(version = "1.0") public void greet(); }

@WorkflowRegistrationOptions

Quando usado em uma interface anotada com @Workflow, fornece as configurações padrão usadas pelo Amazon SWF ao registrar o tipo de fluxo de trabalho.

nota

@WorkflowRegistrationOptions ou @SkipRegistrationOptions deve ser usada em uma interface anotada com @Workflow, mas as duas não podem ser especificadas.

Os seguintes parâmetros podem ser especificados nessa anotação:

Descrição

Uma descrição de texto opcional do tipo do fluxo de trabalho.

defaultExecutionStartToCloseTimeoutSeconds

Especifica o defaultExecutionStartToCloseTimeout registrado com o Amazon SWF para o tipo de fluxo de trabalho. Esse é o tempo total que uma execução de fluxo de trabalho desse tipo pode levar para ser concluída.

Para obter mais informações sobre tempos limite de fluxo de trabalho, consulte Tipos de tempo limite do Amazon SWF .

defaultTaskStartToCloseTimeoutSeconds

Especifica o defaultTaskStartToCloseTimeout registrado com o Amazon SWF para o tipo de fluxo de trabalho. Especifica o tempo que uma única tarefa de decisão de uma execução de fluxo de trabalho desse tipo pode levar para ser concluída.

Se você não especificar o defaultTaskStartToCloseTimeout, ele será padronizado para 30 segundos.

Para obter mais informações sobre tempos limite de fluxo de trabalho, consulte Tipos de tempo limite do Amazon SWF .

defaultTaskList

A lista de tarefas padrão usada para tarefas de decisão para execuções desse tipo de fluxo de trabalho. O conjunto padrão aqui pode ser substituído usando StartWorkflowOptions ao iniciar uma execução de fluxo de trabalho.

Se você não especificar defaultTaskList, ela será definida como USE_WORKER_TASK_LIST por padrão. Isso indica que a lista de tarefas usada pelo operador que está executando o registro do fluxo de trabalho deve ser usada.

defaultChildPolicy

Especifica a política a ser usada para fluxos de trabalho filhos se uma execução desse tipo for encerrada. O valor padrão é ABANDON. Os valores possíveis são:

  • ABANDON – Permitir que as execuções do fluxo de trabalho filho continuem em execução

  • TERMINATE – Encerrar execuções de fluxo de trabalho filho

  • REQUEST_CANCEL – Solicitar o cancelamento das execuções do fluxo de trabalho filho