Einrichten der Aufgabenprioritäten - Amazon Simple Workflow Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Einrichten der Aufgabenprioritäten

Standardmäßig werden Aufgaben in einer Aufgabenliste basierend auf ihrer Ankunftszeit bereitgestellt: Aufgaben, die zuerst geplant wurden, werden möglichst zuerst ausgeführt. Durch Festlegen eines optionalenAufgaben prioritätkönnen Sie bestimmten Aufgaben Priorität einräumen: Amazon SWF wird versuchen, Aufgaben mit einer höheren Priorität in einer Aufgabenliste vor Aufgaben mit niedrigerer Priorität bereitzustellen.

Anmerkung

Aufgaben, die zuerst geplant wurden, werden in der Regel zuerst ausgeführt. Eine Garantie gibt es dafür jedoch nicht.

Sie können die Aufgabenpriorität sowohl für Workflows als auch Aktivitäten einrichten. Die Aufgabenpriorität eines Workflows wirkt sich weder auf die Priorität von durch den Workflow geplanten Aktivitätsaufgaben noch auf vom Workflow gestartete untergeordnete Workflows aus. Die Standardpriorität für eine Aktivität oder einen Workflow wird (entweder von Ihnen oder von Amazon SWF) bei der Registrierung festgelegt. Die registrierte Aufgabenpriorität wird immer verwendet, sofern sie während der Planung einer Aktivität bzw. dem Starten einer Workflow-Ausführung nicht überschrieben wird.

Die Werte für die Aufgabenpriorität müssen im Bereich von "-2147483648" und "2147483647" liegen. Höhere Zahlen geben dabei eine höhere Priorität an. Wenn Sie für eine Aktivität oder einen Workflow keine Aufgabenpriorität festlegen, wird eine Priorität von Null ("0") zugewiesen.

Einrichten der Aufgabenpriorität für Workflows

Sie können die Aufgabenpriorität für einen Workflow beim Registrieren oder Starten des Workflows einrichten. Die beim Registrieren eines Workflowtyps festgelegte Aufgabenpriorität wird standardmäßig für alle Workflow-Ausführungen dieses Typs verwendet, sofern sie beim Starten der Workflow-Ausführung nicht überschrieben wird.

Um einen Workflow-Typ mit einer Standardaufgabenpriorität zu registrieren, richten Sie die Option defaultTaskPriority mit der Aktion RegisterWorkflowType ein:

{ "domain": "867530901", "name": "expeditedOrderWorkflow", "version": "1.0", "description": "Expedited customer orders workflow", "defaultTaskStartToCloseTimeout": "600", "defaultExecutionStartToCloseTimeout": "3600", "defaultTaskList": {"name": "mainTaskList"}, "defaultTaskPriority": "10", "defaultChildPolicy": "TERMINATE" }

Sie können die registrierte Aufgabenpriorität eines Workflow-Typs beim Starten einer Workflow-Ausführung mit StartWorkflowExecution überschreiben:

{ "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"}, }

Sie können die registrierte Aufgabenpriorität auch beim Starten eines untergeordneten Workflows überschreiben oder wenn Sie den Workflow als neuen Workflow fortsetzen, beispielsweise als Reaktion auf eine Entscheidung mit RespondDecisionTaskCompleted.

Um die Aufgabenpriorität eines untergeordneten Workflows einzurichten, geben Sie den Wert in startChildWorkflowExecutionDecisionAttributes an:

{ "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" } } } ] }

Wenn Sie einen Workflow als neuen Workflow fortsetzen, legen Sie die Aufgabenpriorität in continueAsNewWorkflowExecutionDecisionAttributes fest:

{ "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" } } ] }

Einrichten der Aufgabenpriorität für Aktivitäten

Sie können die Aufgabenpriorität für eine Aktivität entweder beim Registrieren oder Planen der Aufgabe einrichten. Die beim Registrieren eines Aktivitätstyps festgelegte Aufgabenpriorität wird standardmäßig beim Ausführen der Aktivität verwendet, sofern sie beim Planen der Aktivität nicht überschrieben wird.

Um die Aufgabenpriorität beim Registrieren eines Aktivitätstyps einzurichten, richten Sie die Option defaultTaskPriority mit der Aktion RegisterActivityType ein:

{ "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" }

Um eine Aufgabe mit einer Aufgabenpriorität zu planen, verwenden Sie die Option taskPriority beim Planen der Aufgabe mit der Aktion 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" } } ] }

Aktionen, die Informationen zur Aufgabenpriorität zurückgeben

Sie können Informationen zur Aufgabenpriorität (oder zur Standardaufgabenpriorität) über die folgenden Amazon SWF SWF--Aktionen abrufen:

  • DescribeActivityType gibt die defaultTaskPriority des Aktivitätstyps im Abschnitt configuration der Antwort zurück.

  • DescribeWorkflowExecution gibt die taskPriority der Workflow-Ausführung im Abschnitt executionConfiguration der Antwort zurück.

  • DescribeWorkflowType gibt die defaultTaskPriority des Workflow-Typs im Abschnitt configuration der Antwort zurück.

  • GetWorkflowExecutionHistory und PollForDecisionTask geben Informationen zur Aufgabenpriorität in den Abschnitten activityTaskScheduledEventAttributes, decisionTaskScheduledEventAttributes, workflowExecutionContinuedAsNewEventAttributes und workflowExecutionStartedEventAttributes der Antwort zurück.