Historique du flux de travail Amazon SWF - Amazon Simple Workflow Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Historique du flux de travail Amazon SWF

La progression de toutes les exécutions de flux de travail est enregistrée dans leur historique, qu'gère Amazon SWF. L'historique du flux de travail est un enregistrement détaillé, complet et cohérent de tous les événements qui ont eu lieu depuis le lancement de l'exécution du flux de travail. Un événement représente une modification distincte de l'état d'exécution de votre flux de travail, telle que la planification d'une nouvelle activité ou la finalisation d'une activité en cours. L'historique du flux de travail contient tous les événements qui entraînent la modification de l'état de l'exécution du flux de travail, telle que les activités planifiées et terminées, l'expiration des tâches et les signaux.

Généralement, les opérations qui ne modifient pas l'état de l'exécution du flux de travail n'apparaissent pas dans l'historique de ce dernier. Par exemple, l'historique du flux de travail ne montre pas les tentatives de recherche de tâches ni l'utilisation des opérations de visibilité.

L'historique du flux de travail présente plusieurs avantages clés :

  • Il permet aux applications d'être sans état, car toutes les informations relatives à une exécution du flux de travail sont stockées dans l'historique correspondant.

  • Pour chaque exécution de flux de travail, l'historique fournit un enregistrement des activités qui ont été planifiées, de leur état actuel et de leurs résultats. L'exécution du flux de travail utilise ces informations pour déterminer les étapes suivantes.

  • L'historique fournit une piste d'audit détaillée que vous pouvez utiliser pour surveiller les exécutions de flux de travail en cours et pour vérifier les exécutions de flux de travail terminées.

Voici une vue conceptuelle de l'historique de flux de travail du commerce en ligne :

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

Dans l'exemple précédent, la commande est en attente d'envoi. Dans l'exemple suivant, la commande est terminée. Comme l'historique du flux de travail est cumulé, les événements les plus récents s'ajoutent :

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

Par programmation, les événements de l'historique d'exécution du flux de travail sont représentées en tant qu'objets JavaScript Object Notation (JSON). L'historique lui-même est un tableau JSON de ces objets. Chaque événement comporte les éléments suivants :

En outre, chaque type d'événement inclut un ensemble distinct d'attributs descriptifs qui lui sont spécifiques. Par exemple, l'événement ActivityTaskCompleted comporte les attributs qui contiennent les ID des événements qui correspondent au moment où la tâche d'activité a été planifiée et au moment où elle a été lancée, ainsi qu'un attribut qui stocke les données de résultat.

Vous pouvez obtenir une copie de l'état actuel de l'historique d'exécution du flux de travail via l'action GetWorkflowExecutionHistory. En outre, dans le cadre de l'interaction entre Amazon SWF et le décideur de votre flux de travail, le décideur reçoit régulièrement une copie de l'historique.

Voici un extrait d'historique d'exécution du flux de travail au format 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" } ]

Pour obtenir une liste détaillée des différents types d'événements qui peuvent apparaître dans l'historique d'exécution du flux de travail, consultezHistoryEventType de données dansRéférence API Amazon Simple Workflow Service.

Amazon SWF stocke l'historique complet de toutes les exécutions de flux de travail pendant un nombre configurable de jours après la fermeture de l'exécution. Cette période, qui est appelée la période de conservation de l'historique du flux de travail, est spécifiée lorsque vous enregistrez un domaine pour votre flux de travail. Nous aborderons les domaines plus en détail ultérieurement dans cette section.