Anotaciones del AWS Flow Framework para Java - AWS Flow Framework para Java

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Anotaciones del AWS Flow Framework para Java

@Tareas

Esta anotación se puede utilizar en una interfaz para declarar un conjunto de tipos de actividades. Cada método de una interfaz con esta anotación representa un tipo de actividad. Una interfaz no puede tener ambas anotaciones, @Workflow y @Activities.

Se pueden especificar los siguientes parámetros en esta anotación:

activityNamePrefix

Especifica el prefijo del nombre de los tipos de actividades declarados en la interfaz. Si se establece como una cadena vacía (que es el valor predeterminado), el nombre de la interfaz seguido de '.' se utilizará como prefijo.

version

Especifica la versión predeterminada de los tipos de actividades declarados en la interfaz. El valor predeterminado es 1.0.

dataConverter

Especifica el tipo de DataConverter que se debe utilizar para serializar/deserializar los datos al crear tareas de este tipo de actividad y sus resultados. Se establece en NullDataConverter de manera predeterminada, lo cual indica que se debe utilizar JsonDataConverter.

@Actividad

Esta anotación se puede utilizar en métodos dentro de una interfaz anotada con @Activities.

Se pueden especificar los siguientes parámetros en esta anotación:

name

Especifica el nombre del tipo de actividad. El valor predeterminado es una cadena vacía, lo que indica que se debe utilizar el prefijo predeterminado y el nombre del método de la actividad para determinar el nombre del tipo de actividad (con el formato {{prefijo}{{nombre}). Tenga en cuenta que, cuando especifica un nombre en una anotación @Activity, el marco no le agregará automáticamente un prefijo. Puede utilizar su propio esquema de nomenclatura.

version

Especifica la versión del tipo de actividad. Esto anula la versión predeterminada especificada en la anotación @Activities en la interfaz que la contiene. El valor predeterminado es una cadena vacía.

@ActivityRegistrationOptions

Especifica las opciones de registro de un tipo de actividad. Esta anotación se puede utilizar en una interfaz con la anotación @Activities o los métodos en ella. Si se especifica en ambos sitios, se aplicará la anotación utilizada en el método.

Se pueden especificar los siguientes parámetros en esta anotación:

defaultTasklist

Especifica la lista de tareas predeterminada que se va a registrar con Amazon SWF para este tipo de actividad. Este valor predeterminado se puede anular al llamar al método de actividad en el cliente generado usando el parámetro ActivitySchedulingOptions. Se establece en USE_WORKER_TASK_LIST de manera predeterminada. Se trata de un valor especial que indica que es preciso utilizar la lista de tareas que usa el trabajo, el cual está realizando el registro.

defaultTaskScheduleToStartTimeoutSeconds

Especifica el valor defaultTaskScheduleToStartTimeout registrado con Amazon SWF para este tipo de actividad. Se trata del tiempo máximo que una tarea de este tipo de actividad puede esperar antes de que se asigne a un trabajo. Consulte la referencia de la API de Amazon Simple Workflow Service para obtener más información.

defaultTaskHeartbeatTimeoutSeconds

Especifica el valor de defaultTaskHeartbeatTimeout registrado con Amazon SWF para este tipo de actividad. Los procesos de trabajo de las actividades deben proporcionar un latido en este intervalo de tiempo, de lo contrario se agotará el tiempo de espera de la tarea. Establecido en -1 de manera predeterminada, se trata de un valor especial que indica que se debe deshabilitar este tiempo de espera. Consulte la referencia de la API de Amazon Simple Workflow Service para obtener más información.

defaultTaskStartToCloseTimeoutSeconds

Especifica el valor defaultTaskStartToCloseTimeout registrado con Amazon SWF para este tipo de actividad. Este tiempo de espera determina el tiempo máximo que un trabajo puede tardar en procesar una tarea de actividad de este tipo. Consulte la referencia de la API de Amazon Simple Workflow Service para obtener más información.

defaultTaskScheduleToCloseTimeoutSeconds

Especifica el valor de defaultScheduleToCloseTimeout registrado con Amazon SWF para este tipo de actividad. El tiempo de espera determina el intervalo de tiempo total que la tarea puede estar abierta. Establecido en -1 de manera predeterminada, se trata de un valor especial que indica que se debe deshabilitar este tiempo de espera. Consulte la referencia de la API de Amazon Simple Workflow Service para obtener más información.

@Asynchronous

Cuando se utiliza en un método dentro de la lógica de coordinación del flujo de trabajo, indica que el método se debe ejecutar de manera asíncrona. Al realizar una llamada al método, se volverá inmediatamente, pero la ejecución real se realizará de manera asíncrona cuando estén preparados todos los parámetros Promise<> que se pasan a los métodos. Los métodos con la anotación @Asynchronous tienen que devolver el tipo Promise<> o void.

daemon

Indica si la tarea creada para el método asíncrono debería ser una tarea de demonio. False de forma predeterminada.

@Execute

Cuando se utiliza en un método dentro de una interfaz con la anotación @Workflow, identifica el punto de entrada del flujo de trabajo.

importante

Solo un método dentro de la interfaz podrá incluir la anotación @Execute.

Se pueden especificar los siguientes parámetros en esta anotación:

name

Especifica el nombre del tipo de flujo de trabajo. Si no se establece, de forma predeterminada el nombre es {{prefijo}{{nombre}, donde {{prefijo} es el nombre de la interfaz de flujo de trabajo seguido de un "." y {{nombre} es el nombre del método con la anotación @Execute en el flujo de trabajo.

version

Especifica la versión del tipo de flujo de trabajo.

@ExponentialRetry

Cuando se utiliza en una actividad o un método asíncrono, establece una política de reintentos exponencial si el método genera una excepción no controlada. Se hace un reintento después de un periodo de retardo, que se calcula mediante la potencia del número de intentos.

Se pueden especificar los siguientes parámetros en esta anotación:

intialRetryIntervalSeconds

Especifica el tiempo que hay que esperar antes de que se realice el primer reintento. Este valor no debe ser mayor que maximumRetryIntervalSeconds y retryExpirationSeconds.

maximumRetryIntervalSeconds

Especifica el tiempo de espera máximo entre reintentos. Una vez alcanzado, el intervalo de reintento quedará determinado por este valor. Establecido en -1 de forma predeterminada, corresponde a una duración ilimitada.

retryExpirationSeconds

Especifica el intervalo de tiempo tras el cual se detendrá el proceso de reintento exponencial. Establecido en -1 de forma predeterminada, corresponde a ausencia de vencimiento.

backoffCoefficient

Especifica el coeficiente utilizado para calcular el intervalo de reintento. Consulte Estrategia de reintento exponencial.

maximumAttempts

Especifica el número de intentos tras el cual se detendrá el proceso de reintento exponencial. Está establecido en -1 de forma predeterminada, lo que significa que no hay límite para el número de reintentos.

exceptionsToRetry

Especifica la lista de tipos de excepciones que deben activar un reintento. Las excepciones no controladas de estos tipos no se seguirán propagando y se realizará un reintento del método cuando haya transcurrido el intervalo de reintento calculado. De forma predeterminada, la lista contiene Throwable.

excludeExceptions

Especifica la lista de tipos de excepciones que no deben activar un reintento. Las excepciones no controladas de este tipo podrán propagarse. La lista está vacía de forma predeterminada.

@GetState

Cuando se utiliza en un método dentro de una interfaz con la anotación @Workflow, identifica que el método se utiliza para recuperar el último estado de ejecución del flujo de trabajo. Puede haber un método como máximo con esta anotación en una interfaz con la anotación @Workflow. Los métodos con esta anotación no deben usar ningún parámetro y deben tener un tipo de devolución distinto de void.

@ManualActivityCompletion

Esta anotación se puede utilizar en un método de actividad para indicar que la tarea de la actividad no debe haber finalizado cuando el método devuelva un valor. La tarea de la actividad no se completará automáticamente y deberá completarse de forma manual directamente con la API de Amazon SWF. Esto resulta útil en los casos de uso donde la tarea de la actividad se delega a algún sistema externo no automatizado o que requiera intervención humana para completarse.

@Signal

Cuando se utiliza en un método dentro de una interfaz con la anotación @Workflow, identifica una señal que pueden recibir las ejecuciones del tipo de flujo de trabajo que haya declarado la interfaz. El uso de esta anotación es obligatorio para definir un método de señalización.

Se pueden especificar los siguientes parámetros en esta anotación:

name

Especifica la parte del nombre que corresponde al nombre de la señal. Si no se especifica, se utiliza el nombre del método.

@SkipRegistration

Cuando se utiliza en una interfaz con la anotación @Workflow, indica que el tipo de flujo de trabajo no debe registrarse con Amazon SWF. Solo se debe utilizar una de las anotaciones @WorkflowRegistrationOptions y @SkipRegistrationOptions en una interfaz con la anotación @Workflow, no ambas.

@Wait y @NoWait

Estas anotaciones se pueden utilizar en un parámetro del tipo Promise<> para indicar si el AWS Flow Framework para Java debe esperar a que esté preparado antes de ejecutar el método. De manera predeterminada, los parámetros Promise<> que se transfieren a los métodos @Asynchronous deben estar preparados antes de que se ejecute el método. En determinadas situaciones, es necesario anular este comportamiento predeterminado. No se espera a los parámetros Promise<> que se pasan a los métodos @Asynchronous y que tienen la anotación @NoWait.

Los parámetros de colecciones (o subclases de parámetros) que contengan promesas, como List<Promise<Int>>, se deben anotar con @Wait. De manera predeterminada, el marco no espera a los miembros de una colección.

@Flujo de trabajo

Esta anotación se utiliza en una interfaz para declarar un tipo de flujo de trabajo. Una interfaz que incluya esta anotación debe contener exactamente un método que incluya la anotación @Execute para declarar un punto de entrada del flujo de trabajo.

nota

Una interfaz no puede tener ambas anotaciones @Workflow y @Activities declaradas al mismo tiempo, ya que se excluyen mutuamente.

Se pueden especificar los siguientes parámetros en esta anotación:

dataConverter

Especifica qué DataConverter se debe utilizar al enviar solicitudes para las ejecuciones correspondientes a este tipo de flujo de trabajo, y también al recibir los resultados.

El valor predeterminado es NullDataConverter que, a su vez, vuelve a JsonDataConverter para procesar todos los datos de solicitud y respuesta como JavaScript Object Notation (JSON).

Ejemplo

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

Cuando se utiliza en una interfaz con la anotación @Workflow, proporciona la configuración predeterminada que utiliza Amazon SWF al registrar el tipo de flujo de trabajo.

nota

Se debe utilizar una de las anotaciones @WorkflowRegistrationOptions o @SkipRegistrationOptions en una interfaz con la anotación @Workflow, pero no se pueden especificar ambas.

Se pueden especificar los siguientes parámetros en esta anotación:

Descripción

Descripción de texto opcional del tipo de flujo de trabajo.

defaultExecutionStartToCloseTimeoutSeconds

Especifica el valor defaultExecutionStartToCloseTimeout registrado con Amazon SWF para el tipo de flujo de trabajo. Se trata del tiempo total que puede tardar en completarse la ejecución de un flujo de trabajo de este tipo.

Para obtener más información acerca de los tiempos de espera de los flujos de trabajo, consulte Tipos de tiempo de espera de Amazon SWF .

defaultTaskStartToCloseTimeoutSeconds

Especifica el valor defaultTaskStartToCloseTimeout registrado con Amazon SWF para el tipo de flujo de trabajo. Especifica el tiempo que puede tardar en completarse una sola tarea de decisión para la ejecución de un flujo de trabajo de este tipo.

Si no especifica defaultTaskStartToCloseTimeout, se aplicará un valor predeterminado de 30 segundos.

Para obtener más información acerca de los tiempos de espera de los flujos de trabajo, consulte Tipos de tiempo de espera de Amazon SWF .

defaultTaskList

Se trata de la lista de tareas predeterminada que se utiliza en las tareas de decisión para las ejecuciones de este tipo de flujo de trabajo. La configuración predeterminada aquí se puede anular usando StartWorkflowOptions al comenzar la ejecución de un flujo de trabajo.

Si no especifica defaultTaskList, se establecerá en USE_WORKER_TASK_LIST de manera predeterminada. Esto indica que es preciso utilizar la lista de tareas que usa el trabajo que está haciendo el registro del flujo de trabajo.

defaultChildPolicy

Especifica la política que se debe utilizar con los flujos de trabajo secundarios si finaliza una ejecución de este tipo. El valor predeterminado es ABANDON. Los valores posibles son:

  • ABANDON: permite que sigan funcionando las ejecuciones de flujos de trabajo secundarios.

  • TERMINATE: finaliza las ejecuciones de flujos de trabajo secundarios.

  • REQUEST_CANCEL: solicita que se cancelen las ejecuciones de flujos de trabajo secundarios.