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.
Cómo AWS Flow Framework funciona Java
The AWS Flow Framework for Java funciona con Amazon SWF para facilitar la creación de aplicaciones escalables y tolerantes a errores para realizar tareas asíncronas que pueden ser de ejecución prolongada, remotas o ambas. Los ejemplos de “Hello World!” Los ejemplos en ¿Qué es AWS Flow Framework para Java? introdujeron los conceptos básicos de cómo utilizarlos para implementar aplicaciones básicas de flujo de trabajo AWS Flow Framework . En esta sección se proporciona información conceptual sobre el funcionamiento de AWS Flow Framework las aplicaciones. La primera sección resume la estructura básica de una AWS Flow Framework aplicación y las secciones restantes proporcionan más detalles sobre el funcionamiento de AWS Flow Framework las aplicaciones.
Temas
- Conceptos básicos de AWS Flow Framework: estructura de la aplicación
- Conceptos básicos de AWS Flow Framework: ejecución de confianza
- Conceptos básicos de AWS Flow Framework: ejecución distribuida
- AWS Flow Framework Conceptos básicos: listas de tareas y ejecución de tareas
- Conceptos básicos de AWS Flow Framework: aplicaciones escalables
- Conceptos básicos de AWS Flow Framework: intercambio de datos entre actividades y flujos de trabajo
- Conceptos básicos de AWS Flow Framework: intercambio de datos entre aplicaciones y ejecuciones de flujo de trabajo
- Tipos de tiempo de espera de Amazon SWF
Tipos de tiempo de espera de Amazon SWF
Para garantizar que las ejecuciones de flujo de trabajo se ejecuten correctamente, Amazon SWF le permite establecer distintos tipos de tiempos de espera. Algunos tiempos de espera especifican cuánto puede tardar el flujo de trabajo en ejecutarse en su totalidad. Otros tiempos de espera especifican cuánto pueden tardar las tareas de actividad en asignarse a un proceso de trabajo y cuánto pueden tardar en completarse desde el momento de su programación. Todos los tiempos de espera de la API de Amazon SWF se especifican en segundos. Amazon SWF también admite la cadena NONE
como valor de tiempo de espera, lo que indica que no se establecerá ningún tiempo de espera.
Para los tiempos de espera relacionados con las tareas de decisión y actividad, Amazon SWF añade un evento al historial de ejecución del flujo de trabajo. Los atributos del evento proporcionan información acerca del tipo de tiempo de espera que tuvo lugar y la tarea de decisión o actividad que se vio afectada. Amazon SWF también programa una tarea de decisión. Cuando el decisor reciba la nueva tarea de decisión, verá el evento de tiempo de espera en el historial y tomará la acción adecuada mediante la convocatoria de la acción. RespondDecisionTaskCompleted
Una tarea se considera abierta desde el momento en que se programa hasta que se cierra. Por tanto, una tarea se registra como abierta mientras un proceso de trabajo la procesa. Una tarea se cierra cuando un proceso de trabajo la registra como Completed, Canceled o Failed. Amazon SWF también puede cerrar una tarea como resultado de un tiempo de espera.
Tiempos de espera de las tareas de decisión y flujo de trabajo
En el siguiente diagrama se muestra cómo los tiempos de espera de decisión y flujo de trabajo están relacionados con la vida útil de un flujo de trabajo:
Hay dos tipos de tiempo de espera que son pertinentes para las tareas de decisión y flujo de trabajo:
-
Tiempo de espera de inicio a cierre del flujo de trabajo (
timeoutType: START_TO_CLOSE
): este tiempo de espera especifica el tiempo máximo que puede tardar en completarse la ejecución de un flujo de trabajo. Se establece como valor predeterminado durante el registro del flujo de trabajo, pero se puede anular con un valor diferente al iniciarse el flujo de trabajo. Si se supera este tiempo de espera, Amazon SWF cierra la ejecución del flujo de trabajo y añade un WorkflowExecutionTimedOuttipo de evento al historial de ejecución del flujo de trabajo. Además detimeoutType
, los atributos del evento especifican lachildPolicy
que se encuentra en vigor para esta ejecución de flujo de trabajo. La política secundaria especifica cómo se controlan las ejecuciones de los flujos de trabajo secundarios si se agota el tiempo de espera de la ejecución de flujo de trabajo principal o termina por otro motivo. Por ejemplo, sichildPolicy
se establece en TERMINATE, las ejecuciones de flujos de trabajo secundarios se terminarán. Una vez que se haya agotado el tiempo de espera de una ejecución de flujo de trabajo, la única medida que podrá tomar al respecto son las llamadas de visibilidad. -
Tiempo de espera de inicio a cierre de la tarea de decisión (
timeoutType: START_TO_CLOSE
): este tiempo de espera especifica el tiempo máximo que el decisor correspondiente puede tardar en completar una tarea de decisión. Se establece durante el registro del tipo de flujo de trabajo. Si se supera este tiempo de espera, la tarea se marca como agotada en el historial de ejecución del flujo de trabajo y Amazon SWF añade un DecisionTaskTimedOuttipo de evento al historial del flujo de trabajo. Los atributos del evento incluirán los ID de los eventos correspondientes al momento en el que se programó esta tarea de decisión (scheduledEventId
) y al momento en el que esta se inició (startedEventId
). Además de añadir el evento, Amazon SWF también programa una tarea de decisión nueva para alertar al decisor de que se ha agotado el tiempo de espera de dicha tarea de decisión. Tras agotarse este tiempo de espera, un intento de completar la tarea de decisión con tiempo de espera agotado medianteRespondDecisionTaskCompleted
producirá un error.
Tiempos de espera de las tareas de actividad
En el siguiente diagrama se muestra cómo los tiempos de espera están relacionados con la vida útil de una tarea de actividad:
Hay cuatro tipos de tiempo de espera que son pertinentes para las tareas de actividad:
-
Tiempo de espera de inicio a cierre de la tarea de actividad (
timeoutType: START_TO_CLOSE
): este tiempo de espera especifica el tiempo máximo que el proceso de trabajo de una actividad puede tardar en procesar una tarea después de haberla recibido. Los intentos de cerrar una tarea de actividad agotada utilizando RespondActivityTaskCanceledRespondActivityTaskCompleted, y fallarán. RespondActivityTaskFailed -
Latido de la tarea de actividad (
timeoutType: HEARTBEAT
): este tiempo de espera especifica el tiempo máximo que se puede ejecutar una tarea antes de indicar su progreso en la acciónRecordActivityTaskHeartbeat
. -
Programación de tareas de actividad hasta su inicio (
timeoutType: SCHEDULE_TO_START
): este tiempo de espera especifica cuánto tiempo espera Amazon SWF antes de agotar el tiempo de espera de la tarea de actividad si no hay procesos de trabajo disponibles para realizarla. Una vez que se agota el tiempo de espera, la tarea caducada no se asignará a otro proceso de trabajo. -
Programación de tareas de actividad hasta su cierre (
timeoutType: SCHEDULE_TO_CLOSE
): este tiempo de espera especifica cuánto tiempo puede tardar la tarea desde el momento en que se programe hasta el momento en que se complete. Como práctica recomendada, este valor no debe ser mayor que la suma del tiempo de espera de la tarea y el schedule-to-start tiempo de espera de la tarea start-to-close .
nota
Cada uno de los tipos de tiempo de espera tiene un valor predeterminado, que generalmente se establece en NONE
(infinito). El tiempo máximo de cualquier ejecución de actividad se limita a un año, sin embargo.
Puede establecer valores predeterminados para estos durante el registro del tipo de actividad, pero puede anularlos con nuevos valores al programar la tarea de actividad. Cuando se agote uno de estos tiempos de espera, Amazon SWF añadirá un ActivityTaskTimedOuttipo de evento al historial del flujo de trabajo. El atributo de valor timeoutType
de este evento especificará cuál de estos tiempos de espera ha tenido lugar. Para cada uno de los tiempos de espera, el valor de timeoutType
se muestra entre paréntesis. Los atributos del evento también incluirán los ID de los eventos correspondientes al momento en el que se programó la tarea de actividad (scheduledEventId
) y al momento en el que esta se inició (startedEventId
). Además de añadir el evento, Amazon SWF también programa una tarea de decisión nueva para alertar al decisor de que se ha agotado el tiempo de espera.