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 de délais d'expiration Amazon SWF
Pour vous assurer que les exécutions des flux de travail s'exécutent correctement, vous pouvez définir différents types de délais d'expiration avec Amazon SWF. 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 d'attente de l'API Amazon SWF sont spécifiés en secondes. Amazon SWF prend également en charge la chaîne en NONE tant que valeur de délai d'expiration, ce qui indique qu'il n'y a pas de délai d'expiration.
Pour les délais d'attente 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 l'événement fournissent des informations sur le type de délai d'attente qui s'est produit et sur la tâche de décision ou d'activité affecté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 temporisation dans l'historique et prend une action appropriée en appelant l'RespondDecisionTaskCompletedaction.
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 d'un délai d'attente.
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 :
Il existe deux types de délai qui s'appliquent aux tâches du flux de travail et aux tâches de décision :
-
Début à la fermeture du flux de travail (
timeoutType: START_TO_CLOSE) : ce délai indique la durée maximale que peut prendre l'exécution d'un flux de travail. 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énement de type WorkflowExecutionTimedOut à l'historique des exécutions du flux de travail. OutretimeoutType, les attributs de l'événement spécifient la stratégiechildPolicyqui 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égiechildPolicyest 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é. -
Début à la fermeture de la tâche de décision (
timeoutType: START_TO_CLOSE) : ce délai indique le temps maximum que le décideur correspondant peut mettre 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 type DecisionTaskTimedOut à l'historique du 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 l'é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 avecRespondDecisionTaskCompletedé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é :
Quatre types de délai s'appliquent aux tâches d'activité :
-
Début à la fermeture de la tâche d'activité (
timeoutType: START_TO_CLOSE) : ce délai indique le temps maximum qu'un travailleur peut mettre pour traiter une tâche une fois qu'il l'a reçue. Les tentatives de fermeture d'une tâche d'activité dont le délai a expiré à l'aide de RespondActivityTaskCanceled RespondActivityTaskCompleted, et RespondActivityTaskFailed échoueront. -
Rythme cardiaque de la tâche d'activité (
timeoutType: HEARTBEAT) : ce délai indique la durée maximale pendant laquelle une tâche peut être exécutée avant de fournir sa progression dans l'RecordActivityTaskHeartbeataction. -
Calendrier des tâches d'activité à démarrer (
timeoutType: SCHEDULE_TO_START) : ce délai indique combien de temps Amazon SWF attend avant d'exécuter la tâche d'activité si aucun collaborateur n'est disponible pour l'exécuter. 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 indique combien de temps la tâche peut prendre entre le moment où elle est planifiée et le moment où elle est terminée. 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 survient, Amazon SWF ajoute un événement de type ActivityTaskTimedOut à l'historique du 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 l'événement, Amazon SWF planifie également une nouvelle tâche de décision pour avertir le décideur que le délai d'attente s'est produit.