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.
Historial de flujos de trabajo de Amazon SWF
El progreso de todas las ejecuciones de flujo de trabajo se registra en su historial de flujo de trabajo, que mantiene Amazon SWF. El historial del flujo de trabajo ofrece un registro detallado, completo y coherente de todos los eventos ocurridos desde que se inició la ejecución del flujo de trabajo. Un evento representa un cambio diferenciado del estado de la ejecución del flujo de trabajo, como la programación de una nueva actividad o la finalización de una actividad en curso. El historial del flujo de trabajo contiene todos los eventos que entrañan la modificación del estado de la ejecución del flujo de trabajo, como actividades programadas y completadas, tiempos de espera de la tarea y señales.
Las operaciones que no modifican el estado de la ejecución del flujo de trabajo no suelen aparecer en el historial del flujo de trabajo. Por ejemplo, el historial del flujo de trabajo no muestra los intentos de sondeo o la utilización de operaciones de visibilidad.
El historial del flujo de trabajo ofrece varios beneficios clave:
-
Permite que las aplicaciones no tengan estado, ya que toda la información sobre la ejecución de un flujo de trabajo se almacena en su historial del flujo de trabajo.
-
Para cada ejecución de flujo de trabajo, el historial proporciona un registro de qué actividades se programaron, su estado actual y sus resultados. La ejecución del flujo de trabajo utiliza esta información para determinar los siguientes pasos.
-
El historial ofrece un seguimiento de auditoría detallado que puede utilizar para monitorizar las ejecuciones de flujos de trabajo en curso y verificar las ejecuciones de flujos de trabajo completadas.
A continuación se muestra una vista conceptual de un historial de flujo de trabajo de e-commerce:
Invoice0001 Start Workflow Execution Schedule Verify Order Start Verify Order Activity Complete Verify Order Activity Schedule Charge Credit Card Start Charge Credit Card Activity Complete Charge Credit Card Activity Schedule Ship Order Start Ship Order Activity
En el ejemplo anterior, el pedido está a la espera de ser enviado. En el siguiente ejemplo, el pedido se ha completado. Como el historial del flujo de trabajo es acumulativo, los eventos más nuevos se añaden al final:
Invoice0001 Start Workflow Execution Schedule Verify Order Start Verify Order Activity Complete Verify Order Activity Schedule Charge Credit Card Start Charge Credit Card Activity Complete Charge Credit Card Activity Schedule Ship Order Start Ship Order Activity
Complete Ship Order Activity Schedule Record Order Completion Start Record Order Completion Activity Complete Record Order Completion Activity Close Workflow
Desde el punto de vista de la programación, los eventos del historial de ejecución del flujo de trabajo están representados como objetos JavaScript Object Notation (JSON). El historial en sí es una matriz JSON de estos objetos. Cada evento contiene lo siguiente:
-
Un tipo, como WorkflowExecutionStarted o ActivityTaskCompleted
-
Una marca temporal en formato de tiempo Unix
-
Un ID que identifica el evento de forma exclusiva
Además, cada tipo de evento tiene un conjunto distintivo de atributos descriptivos que son específicos de ese tipo. Por ejemplo, el evento ActivityTaskCompleted
tiene atributos que contienen los ID de los eventos correspondientes al momento en el que se programó la tarea de actividad y a cuando comenzó, así como un atributo que almacena los datos de resultados.
Puede obtener una copia del estado actual del historial de ejecución del flujo de trabajo mediante la acción GetWorkflowExecutionHistory. Además, como parte de la interacción entre Amazon SWF y el decisor del flujo de trabajo, el decisor recibe periódicamente copias del historial.
A continuación se muestra una sección de un historial de ejecución de un flujo de trabajo de ejemplo en formato JSON.
[ { "eventId": 11, "eventTimestamp": 1326671603.102, "eventType": "WorkflowExecutionTimedOut", "workflowExecutionTimedOutEventAttributes": { "childPolicy": "TERMINATE", "timeoutType": "START_TO_CLOSE" } }, { "decisionTaskScheduledEventAttributes": { "startToCloseTimeout": "600", "taskList": { "name": "specialTaskList" } }, "eventId": 10, "eventTimestamp": 1326670566.124, "eventType": "DecisionTaskScheduled" }, { "activityTaskTimedOutEventAttributes": { "details": "Waiting for confirmation", "scheduledEventId": 8, "startedEventId": 0, "timeoutType": "SCHEDULE_TO_START" }, "eventId": 9, "eventTimestamp": 1326670566.124, "eventType": "ActivityTaskTimedOut" }, { "activityTaskScheduledEventAttributes": { "activityId": "verification-27", "activityType": { "name": "activityVerify", "version": "1.0" }, "control": "digital music", "decisionTaskCompletedEventId": 7, "heartbeatTimeout": "120", "input": "5634-0056-4367-0923,12/12,437", "scheduleToCloseTimeout": "900", "scheduleToStartTimeout": "300", "startToCloseTimeout": "600", "taskList": { "name": "specialTaskList" } }, "eventId": 8, "eventTimestamp": 1326670266.115, "eventType": "ActivityTaskScheduled" }, { "decisionTaskCompletedEventAttributes": { "executionContext": "Black Friday", "scheduledEventId": 5, "startedEventId": 6 }, "eventId": 7, "eventTimestamp": 1326670266.103, "eventType": "DecisionTaskCompleted" }, { "decisionTaskStartedEventAttributes": { "identity": "Decider01", "scheduledEventId": 5 }, "eventId": 6, "eventTimestamp": 1326670161.497, "eventType": "DecisionTaskStarted" }, { "decisionTaskScheduledEventAttributes": { "startToCloseTimeout": "600", "taskList": { "name": "specialTaskList" } }, "eventId": 5, "eventTimestamp": 1326668752.66, "eventType": "DecisionTaskScheduled" }, { "decisionTaskTimedOutEventAttributes": { "scheduledEventId": 2, "startedEventId": 3, "timeoutType": "START_TO_CLOSE" }, "eventId": 4, "eventTimestamp": 1326668752.66, "eventType": "DecisionTaskTimedOut" }, { "decisionTaskStartedEventAttributes": { "identity": "Decider01", "scheduledEventId": 2 }, "eventId": 3, "eventTimestamp": 1326668152.648, "eventType": "DecisionTaskStarted" }, { "decisionTaskScheduledEventAttributes": { "startToCloseTimeout": "600", "taskList": { "name": "specialTaskList" } }, "eventId": 2, "eventTimestamp": 1326668003.094, "eventType": "DecisionTaskScheduled" } ]
Para obtener una lista detallada de los diferentes tipos de eventos que pueden aparecer en el historial de ejecución del flujo de trabajo, consulte el tipo de datos HistoryEvent en la Referencia de la API de Amazon Simple Workflow Service.
Amazon SWF almacena el historial completo de todas las ejecuciones del flujo de trabajo durante un número de días configurable después del cierre de la ejecución. Este periodo, que se conoce como periodo de retención del historial del flujo de trabajo, se especifica cuando se registra un dominio para el flujo de trabajo. Los dominios se detallan en más profundidad más adelante en esta sección.