작업 우선 순위 설정 - Amazon Simple Workflow Service

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

작업 우선 순위 설정

기본적으로 작업 목록의 작업은 도착 시간에 따라 제공됨: 가능한 한 먼저 예약된 작업이 일반적으로 먼저 실행됩니다. 선택적 작업 우선 순위를 설정해 특정 작업에 우선 순위를 부여할 수 있음: Amazon SWF는 작업 목록에서 우선 순위가 높은 작업을 우선 순위가 낮은 작업보다 먼저 제공하려고 합니다.

참고

일반적으로 먼저 예약된 작업이 먼저 실행되지만 이러한 순서가 반드시 보장되는 것은 아닙니다.

워크플로 및 활동 둘 다에 대해 작업 우선 순위를 설정할 수 있습니다. 워크플로의 작업 우선 순위는 워크플로가 예약한 활동 작업의 우선 순위에 영향을 미치지 않고 워크플로가 시작한 하위 워크플로에도 영향을 미치지 않습니다. 활동 또는 워크플로의 기본 우선 순위는 등록 중 (사용자 또는 Amazon SWF가) 설정하지만 활동을 예약하거나 워크플로 실행을 시작하는 동안 재정의하지 않는 한 항상 등록된 작업 우선 순위가 사용됩니다.

작업 우선 순위 값의 범위는 "-2147483648" ~ "2147483647"일 수 있으며 숫자가 클수록 우선 순위가 높음을 나타냅니다. 활동 또는 워크플로에 대해 작업 우선 순위를 설정하지 않으면 우선 순위 0이 할당됩니다.

워크플로의 작업 우선 순위 설정

워크플로를 등록 또는 시작할 때 워크플로의 작업 우선 순위를 설정할 수 있습니다. 워크플로 실행 설정 시 재정의되지 않는 한 워크플로 유형 등록 시 설정한 작업 우선 순위가 해당 형의 워크플로 실행에 대해 기본값으로 사용됩니다.

기본 작업 우선 순위로 워크플로 유형을 등록하려면 RegisterWorkflowType 작업을 사용할 때 defaultTaskPriority 옵션을 설정하십시오.

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

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

또한 하위 워크플로우를 시작하거나 워크플로우를 새로 계속 진행할 때도(예: RespondDecisionTaskCompleted로 결정에 응답하는 경우) 등록된 작업 우선 순위를 재정의할 수 있습니다.

하위 워크플로의 작업 우선 순위를 설정하려면 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" } } } ] }

워크플로를 새 워크플로로 계속 실행하는 경우 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" } } ] }

활동의 작업 우선 순위 설정

활동을 등록하거나 예약할 때 활동에 대한 작업 우선 순위를 설정할 수 있습니다. 활동 예약 재정의하지 않는 한 작업 유형 등록 시 설정한 작업 우선 순위가 활동 실행 시 기본 우선 순위로 사용됩니다.

활동 유형을 등록할 때 작업 우선 순위를 지정하려면 RegisterActivityType 작업을 사용할 때 defaultTaskPriority 옵션을 설정하십시오.

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

작업 우선 순위가 있는 작업을 예약하려면 RespondDecisionTaskCompleted 작업이 있는 활동을 예약할 때 taskPriority 옵션을 사용하십시오.

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

작업 우선 순위 정보를 반환하는 작업

다음 Amazon SWF 작업에서 설정된 작업 우선 순위(또는 설정된 기본 작업 우선 순위)에 대한 정보를 얻을 수 있습니다.

  • DescribeActivityType은 응답의 configuration 섹션에 있는 defaultTaskPriority 활동 유형을 반환합니다.

  • DescribeWorkflowExecution은 응답의 executionConfiguration 섹션에 있는 taskPriority 워크플로 실행을 반환합니다.

  • DescribeWorkflowType은 응답의 configuration 섹션에 있는 defaultTaskPriority 워크플로 유형을 반환합니다.

  • GetWorkflowExecutionHistoryPollForDecisionTask는 응답의 activityTaskScheduledEventAttributes, decisionTaskScheduledEventAttributes, workflowExecutionContinuedAsNewEventAttributesworkflowExecutionStartedEventAttributes 섹션에 작업 우선 순위 정보를 제공합니다.