Types Amazon SWF Timeout - 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.

Types Amazon SWF Timeout

Pour s'assurer que les exécutions de flux de travail fonctionnent correctement, Amazon SWF vous permet de définir différents types de délais. Certains délais spécifient la durée totale d'exécution du flux de travail. D'autres délais définissent combien de temps les tâches d'activité peuvent prendre avant d'être affectées à un outil de traitement, ainsi que combien de temps elles peuvent prendre pour se terminer à compter de l'heure où elles sont planifiées. Tous les délais dans l'API Amazon SWF sont spécifiés en secondes. Amazon SWF prend également en charge la chaîneNONEcomme valeur de délai, qui indique qu'aucun délai n'est expiré.

Pour les délais liés aux tâches de décision et aux tâches d'activité, Amazon SWF ajoute un événement à l'historique d'exécution du flux de travail. Les attributs de cet événement fournissent des informations sur le type de délai qui a eu lieu, ainsi que sur la tâche de décision ou d'activité concernée. Amazon SWF planifie également une tâche de décision. Lorsque le décideur reçoit la nouvelle tâche de décision, il voit l'événement de délai dans l'historique et prend une mesure appropriée en appelant l'action RespondDecisionTaskCompleted.

Une tâche est considérée comme ouverte depuis le moment où elle est planifiée jusqu'à ce qu'elle soit fermée. Par conséquent, une tâche est indiquée comme ouverte lorsqu'un outil de traitement s'en occupe. Une tâche est fermée lorsqu'un outil de traitement la signale comme terminée, comme annulée ou comme ayant échoué. Une tâche peut également être fermée par Amazon SWF à la suite de l'expiration d'un délai.

Délais liés au flux de travail et aux tâches de décision

Le schéma suivant illustre comment les délais de flux de travail et de décision sont liés à la durée de vie d'un flux de travail :


               Durée de vie d'un flux de travail, avec des délais

Il existe deux types de délai qui s'appliquent aux tâches du flux de travail et aux tâches de décision :

  • Du démarrage à la fermeture du flux de travailtimeoutType: START_TO_CLOSE)— Ce délai spécifie le temps maximal autorisé pour qu'une exécution de flux de travail se termine. Il est défini comme valeur par défaut lors de l'enregistrement du flux de travail, mais peut être remplacé par une autre valeur lorsque le flux de travail est lancé. Si ce délai est dépassé, Amazon SWF ferme l'exécution du flux de travail et ajoute unévénementde typeWorkflowExecutionTimedOutvers l'historique d'exécution du flux de travail. Outre timeoutType, les attributs de l'événement spécifient la stratégie childPolicy qui est en vigueur pour cette exécution de flux de travail. La stratégie enfant définit comment les exécutions de flux de travail enfant sont gérées si l'exécution de flux de travail parent expire ou si elle est arrêtée. Par exemple, si la stratégie childPolicy est définie sur TERMINATE, les exécutions de flux de travail enfant sont arrêtées. Une fois qu'une exécution de flux de travail expire, vous ne pouvez plus effectuer que les appels de visibilité.

  • De la tâche de décision Start to Close (timeoutType: START_TO_CLOSE)— Ce délai spécifie le temps maximal que le décideur correspondant peut prendre pour terminer une tâche de décision. Il est défini lors de l'enregistrement du type de flux de travail. Si ce délai est dépassé, la tâche est marquée comme ayant expiré dans l'historique d'exécution du flux de travail, et Amazon SWF ajoute un événement de typeDecisionTaskTimedOutvers l'historique des flux de travail. Les attributs de l'événement comprennent les ID des événements qui correspondent au moment où cette tâche de décision (scheduledEventId) a été planifiée et au moment où elle a été lancée (startedEventId). Outre l'ajout de cet événement, Amazon SWF planifie également une nouvelle tâche de décision pour avertir le décideur que cette tâche de décision a expiré. Après expiration de ce délai, toute tentative de finalisation de la décision avec RespondDecisionTaskCompleted échoue.

Délais des tâches d'activité

Le schéma suivant illustre le lien entre les délais d'attente et la durée de vie d'une tâche d'activité :


               Durée de vie d'une tâche, avec des délais

Quatre types de délai s'appliquent aux tâches d'activité :

  • De la tâche d'activité Start to Close (timeoutType: START_TO_CLOSE)— Ce délai spécifie le temps maximal qu'un outil de traitement d'activité peut prendre pour traiter une tâche après l'avoir reçue. Toute tentative de fermeture d'une tâche d'activité ayant expiré avec RespondActivityTaskCanceled, RespondActivityTaskCompleted et RespondActivityTaskFailed échouera.

  • Task d'activité Heartbeat (timeoutType: HEARTBEAT)— Ce délai spécifie le temps maximal qu'une tâche peut exécuter avant de fournir sa progression via leRecordActivityTaskHeartbeataction.

  • Task Schedule to Start (timeoutType: SCHEDULE_TO_START)— Ce délai spécifie combien de temps Amazon SWF attend avant de suspendre la tâche d'activité si aucun outil de traitement n'est disponible pour l'effectuer. Lorsque la tâche arrive à expiration, elle n'est pas attribuée à un autre outil de traitement.

  • Calendrier des tâches d'activité à fermer (timeoutType: SCHEDULE_TO_CLOSE)— Ce délai spécifie combien de temps la tâche peut prendre entre l'heure à laquelle elle est planifiée et l'heure où elle se termine. Cette valeur ne doit pas être supérieure à la somme des délais schedule-to-start et start-to-close de la tâche.

Note

Chacun des types de délai a une valeur par défaut, généralement définie sur NONE (infini). Toutefois, la durée maximale de toute exécution d'activité est limitée à un an.

Vous définissez ces valeurs par défaut lors de l'enregistrement du type d'activité, mais vous pouvez les remplacer par d'autres valeurs lorsque vous planifiez la tâche d'activité. Lorsque l'un de ces délais se produit, Amazon SWF ajoute unévénementde typeActivityTaskTimedOutvers l'historique des flux de travail. La valeur d'attribut timeoutType de cet événement indique quel délai a expiré. Pour chaque délai, la valeur timeoutType est indiquée entre parenthèses. Les attributs de l'événement comprennent également les ID des événements qui correspondent au moment où la tâche d'activité (scheduledEventId) a été planifiée et au moment où elle a été lancée (startedEventId). Outre l'ajout de cet événement, Amazon SWF planifie également une nouvelle tâche de décision pour avertir le décideur que le délai a expiré.