Amazon SWF 작업 목록 - Amazon Simple Workflow Service

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

Amazon SWF 작업 목록

작업 목록을 사용하면 워크플로와 연결된 다양한 작업을 정리할 수 있습니다. 작업 목록은 동적 대기열과 유사하다고 생각하면 됩니다. Amazon SWF에서 작업을 예약할 때 대기열(작업 목록)을 지정하고 작업을 넣어 둘 수 있습니다. 마찬가지로, 작업을 위해 Amazon SWF를 폴링할 때도 작업을 가져올 대기열(작업 목록)을 지정할 수 있습니다.

작업 목록은 사용 사례의 필요에 따라 작업자에게 작업을 라우팅하는 유연한 메커니즘을 제공합니다. 작업 목록은 작업 목록을 등록하거나 작업을 통해 작업 목록을 명시적으로 생성할 필요가 없다는 점에서 동적입니다. 작업을 예약하기만 하면 지금까지 없던 작업 목록이 생깁니다.

활동 작업 및 결정 작업에 해당하는 별도의 목록이 있습니다. 작업은 항상 하나의 작업 목록에 대해서만 예약되고 목록 간에 작업은 공유되지 않습니다. 게다가 활동 및 워크플로처럼 작업 목록의 범위는 특정 AWS 리전 및 Amazon SWF 도메인으로 지정됩니다.

결정 작업 목록

각 워크플로 실행은 특정한 결정 작업 목록과 연결됩니다. 워크플로우 유형이 등록되면(RegisterWorkflowType 작업) 해당 워크플로 유형의 실행을 위한 기본 작업 목록을 지정할 수 있습니다. 워크플로 시작자가 워크플로 실행을 시작하면(StartWorkflowExecution 작업) 해당 워크플로 실행에 대해 다른 작업 목록을 지정할 수 있는 옵션이 있습니다.

결정자가 새 결정 작업을 폴링하면(PollForDecisionTask 작업) 결정자는 새 작업을 가져올 결정 작업 목록을 지정합니다. 한 결정자가 호출할 때마다 다른 작업 목록을 사용해 PollForDecisionTask를 여러 번 호출하면서 워크플로 실행을 여러 번 서비스할 수 있습니다. 이때 각 작업 목록은 특정 워크플로 실행에 고유합니다. 또한 결정자는 여러 가지 워크플로 실행을 위한 결정 작업을 담은 결정 작업 목록 하나를 폴링할 수 있습니다. 또한 여러 결정자가 모두 워크플로 실행을 위한 작업 목록을 폴링하도록 하여 그 워크플로 실행을 서비스하도록 할 수도 있습니다.

활동 작업 목록

활동 작업 목록 하나에 여러 활동 유형의 작업을 포함할 수 있습니다. 작업은 작업 목록 순서대로 예약됩니다. Amazon SWF는 최선을 다해 목록에서 작업을 순서대로 반환합니다. 그러나 목록의 작업을 순서대로 가져올 수 없는 상황도 있습니다.

활동 유형이 등록되면(RegisterActivityType 작업) 해당 활동 유형에 대한 기본 작업 목록을 지정할 수 있습니다. 기본적으로 이 유형의 활동 작업은 지정된 작업 목록에 대해 예약되지만 결정자가 활동 작업을 예약하는 경우(ScheduleActivityTask 결정) 결정자는 선택적으로 작업을 예약할 다른 작업 목록을 지정할 수 있습니다. 결정자가 작업 목록을 지정하지 않으면 기본 작업 목록이 사용됩니다. 따라서 작업의 속성에 따라 특정 작업 목록에 활동 작업을 배치할 수 있습니다. 예를 들어, 주어진 신용카드 유형에 대한 활동 작업의 모든 인스턴스를 특정 작업 목록에 배치할 수 있습니다.

작업 라우팅

활동 작업자가 새 작업을 폴링할 때(PollForActivityTask 작업) 작업을 가져올 활동 작업 목록을 지정할 수 있습니다. 그러면 활동 작업자는 해당 목록의 작업만 수락합니다. 이러한 방식으로 특정 작업을 특정 활동 작업자에게만 할당할 수 있습니다. 예를 들어, 고성능 컴퓨터 사용이 필요한 작업을 보관하는 작업 목록을 만들 수 있습니다. 적절한 하드웨어에서 실행 중인 활동 작업자만 해당 작업 목록을 폴링할 수 있습니다. 또 다른 예로, 특정 지리적 리전에 대한 작업 목록을 생성할 수 있습니다. 그런 다음 해당 리전에 배포된 작업자만 작업을 선택하도록 할 수 있습니다. 또는 우선순위가 높은 주문에 대한 작업 목록을 생성해 항상 해당 목록을 먼저 확인하도록 만들 수 있습니다.

이러한 방식으로 특정 작업을 특정 활동 작업자에게 할당하는 것을 작업 라우팅이라고 합니다. 작업 라우팅은 선택적입니다. 활동 작업 예약 시 작업 목록을 지정하지 않으면 작업은 기본 작업 목록에 자동으로 배치됩니다.