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.
Définition de la priorité des tâches
Par défaut, les tâches d'une liste des tâches dépendent de leur heure d'arrivée : celles qui sont planifiées en premier sont généralement exécutées en premier, aussi loin que possible. En définissant une optionPriorités des tâches, vous pouvez donner la priorité à certaines tâches : Amazon SWF essaiera d'envoyer les tâches dont la priorité est élevée avant celles dont la priorité est faible.
Note
Les tâches qui sont planifiées en premier sont généralement exécutées en premier, mais ce n'est pas garanti.
Vous pouvez définir des priorités de tâche pour les flux de travail et les activités. La priorité de tâche d'un flux de travail n'a pas d'incidence sur la priorité des tâches d'activité qu'il planifie, ni sur les flux de travail enfants qu'il démarre. La priorité par défaut d'une activité ou d'un flux de travail est définie (par vous ou par Amazon SWF) lors de l'enregistrement, et la priorité de la tâche enregistrée est toujours utilisée, sauf si elle est remplacée lors de planification de l'activité ou du lancement d'une exécution de flux de travail.
Les valeurs de priorité des tâche peuvent aller de « -2147483648 » à « 2147483647 » (le nombre le plus élevé indique une priorité supérieure). Si vous ne définissez la priorité de tâche d'une activité ou d'un flux de travail, la priorité zéro (« 0 ») lui est attribuée.
Rubriques
Définition d'une priorité de tâche pour les flux de travail
Vous pouvez définir la priorité de tâche d'un flux de travail lorsque vous l'enregistrez ou lorsque vous le lancez. La priorité de tâche définie lorsque le type de flux de travail est enregistré est utilisée comme valeur par défaut pour toutes les exécutions de flux de travail de ce type, sauf si elle est remplacée lors du lancement de l'exécution de flux de travail.
Pour enregistrer un type de flux de travail avec une priorité de tâche par défaut, définissez l'option defaultTaskPriority lorsque vous utilisez l'action RegisterWorkflowType :
{ "domain": "867530901", "name": "expeditedOrderWorkflow", "version": "1.0", "description": "Expedited customer orders workflow", "defaultTaskStartToCloseTimeout": "600", "defaultExecutionStartToCloseTimeout": "3600", "defaultTaskList": {"name": "mainTaskList"}, "defaultTaskPriority": "10", "defaultChildPolicy": "TERMINATE" }
Vous pouvez remplacer la priorité de tâche enregistrée d'un type de flux de travail lorsque vous lancez une exécution de flux de travail avec StartWorkflowExecution :
{ "childPolicy": "TERMINATE", "domain": "867530901", "executionStartToCloseTimeout": "1800", "input": "arbitrary-string-that-is-meaningful-to-the-workflow", "tagList": ["music purchase", "digital", "ricoh-the-dog"], "taskList": {"name": "specialTaskList"}, "taskPriority": "-20", "taskStartToCloseTimeout": "600", "workflowId": "20110927-T-1", "workflowType": {"name": "customerOrderWorkflow", "version": "1.0"}, }
Vous pouvez également remplacer la priorité de tâche enregistrée lors du lancement d'un flux de travail enfant ou lorsque vous continuez un flux de travail comme s'il était nouveau, par exemple lorsqu'il répond à une décision avec RespondDecisionTaskCompleted.
Pour définir la priorité de tâche d'un flux de travail enfant, indiquez la valeur dans startChildWorkflowExecutionDecisionAttributes
:
{ "taskToken": "AAAAKgAAAAEAAAAAAAAAA...", "decisions": [ { "decisionType": "StartChildWorkflowExecution", "startChildWorkflowExecutionDecisionAttributes": { "childPolicy": "TERMINATE", "control": "digital music", "executionStartToCloseTimeout": "900", "input": "201412-Smith-011x", "taskList": {"name": "specialTaskList"}, "taskPriority": "5", "taskStartToCloseTimeout": "600", "workflowId": "verification-workflow", "workflowType": { "name": "MyChildWorkflow", "version": "1.0" } } } ] }
Lorsque vous poursuivez un flux de travail comme s'il était nouveau, définissez la priorité de la tâche dans continueAsNewWorkflowExecutionDecisionAttributes
:
{ "taskToken": "AAAAKgAAAAEAAAAAAAAAA...", "decisions": [ { "decisionType": "ContinueAsNewWorkflowExecution", "continueAsNewWorkflowExecutionDecisionAttributes": { "childPolicy": "TERMINATE", "executionStartToCloseTimeout": "1800", "input": "5634-0056-4367-0923,12/12,437", "taskList": {"name": "specialTaskList"}, "taskStartToCloseTimeout": "600", "taskPriority": "100", "workflowTypeVersion": "1.0" } } ] }
Définition d'une priorité de tâche pour les activités
Vous pouvez définir la priorité de tâche d'une activité lors de son enregistrement ou de sa planification. La priorité de tâche définie lors de l'enregistrement d'un type d'activité est utilisée comme priorité par défaut lorsque l'activité est exécutée, sauf si elle est remplacée lors de la planification de l'activité.
Pour définir une priorité de tâche lors de l'enregistrement d'un type d'activité, spécifiez l'option defaultTaskPriority lorsque vous utilisez l'action RegisterActivityType :
{ "defaultTaskHeartbeatTimeout": "120", "defaultTaskList": {"name": "mainTaskList"}, "defaultTaskPriority": "10", "defaultTaskScheduleToCloseTimeout": "900", "defaultTaskScheduleToStartTimeout": "300", "defaultTaskStartToCloseTimeout": "600", "description": "Verify the customer credit card", "domain": "867530901", "name": "activityVerify", "version": "1.0" }
Pour planifier une tâche avec une priorité, utilisez l'option taskPriority lors de la planification de l'activité via l'action RespondDecisionTaskCompleted :
{ "taskToken": "AAAAKgAAAAEAAAAAAAAAA...", "decisions": [ { "decisionType": "ScheduleActivityTask", "scheduleActivityTaskDecisionAttributes": { "activityId": "verify-account", "activityType": { "name": "activityVerify", "version": "1.0" }, "control": "digital music", "input": "abab-101", "taskList": {"name": "mainTaskList"}, "taskPriority": "15" } } ] }
Actions renvoyant les informations relatives aux priorités de tâche
Vous pouvez obtenir des informations sur la priorité de tâche définie (ou la priorité de tâche par défaut) à partir des actions Amazon SWF suivantes :
-
DescribeActivityType renvoie la priorité par défaut defaultTaskPriority du type d'activité dans la section
configuration
de la réponse. -
DescribeWorkflowExecution renvoie la priorité de tâche taskPriority de l'exécution de flux de travail dans la section
executionConfiguration
de la réponse. -
DescribeWorkflowType renvoie la priorité par défaut defaultTaskPriority du type de flux de travail dans la section
configuration
de la réponse. -
GetWorkflowExecutionHistory et PollForDecisionTask fournissent des informations sur la priorité de tâche dans les sections
activityTaskScheduledEventAttributes
,decisionTaskScheduledEventAttributes
,workflowExecutionContinuedAsNewEventAttributes
etworkflowExecutionStartedEventAttributes
de la réponse.