AWS Flow Framework for Java 주석 - AWS Flow Framework Java용

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

AWS Flow Framework for Java 주석

@활동

인터페이스에서 이 주석을 사용하여 일련의 활동 유형을 선언할 수 있습니다. 이 주석이 달린 인터페이스의 각 메서드는 활동 유형을 나타냅니다. 한 인터페이스에 @Workflow@Activities 주석이 둘 다 있을 수는 없습니다.

이 주석에는 다음 파라미터를 지정할 수 있습니다.

activityNamePrefix

인터페이스에서 선언된 활동 유형의 이름에 붙일 접두사를 지정합니다. 기본값인 빈 문자열로 설정된 경우 '.' 앞에 있는 인터페이스 이름이 접두사로 사용됩니다.

version

인터페이스에서 선언된 활동 유형의 기본 버전을 지정합니다. 기본값은 1.0입니다.

dataConverter

이 활동 유형의 작업 및 그 결과 생성 시 데이터 직렬화/역직렬화에 사용할 DataConverter의 유형을 지정합니다. NullDataConverter를 기본값으로 설정합니다. 이 값은 JsonDataConverter를 사용해야 함을 뜻합니다.

@활동

이 주석은 @Activities가 주석으로 달린 인터페이스 내의 메서드에서 사용할 수 있습니다.

이 주석에는 다음 파라미터를 지정할 수 있습니다.

name

활동 유형의 이름을 지정합니다. 기본값은 빈 문자열입니다. 이는 활동 유형의 이름을 정할 때 기본 접두사 및 활동 메서드 이름을 사용해야 함을 뜻합니다({접두사}{이름} 형식). @Activity 주석에서 이름을 지정하는 경우 프레임워크에서는 그 이름에 접두사를 자동으로 붙이지 않는다는 점에 유의하십시오. 고유한 이름 지정 체계를 자유롭게 사용할 수 있습니다.

version

활동 유형의 버전을 지정합니다. 이렇게 하면 포함된 인터페이스의 @Activities 주석에 지정된 기본 버전이 재정의됩니다. 기본값은 빈 문자열입니다.

@ActivityRegistrationOptions

활동 유형의 등록 옵션을 지정합니다. 이 주석은 @Activities가 주석으로 달린 인터페이스 또는 이 인터페이스 내의 메서드에서 사용할 수 있습니다. 두 군데에서 모두 지정하면 메서드에서 사용되는 주석이 적용됩니다.

이 주석에는 다음 파라미터를 지정할 수 있습니다.

defaultTasklist

이 활동 유형에 대해 Amazon SWF에 등록할 기본 작업 목록을 지정합니다. 이 기본값은 ActivitySchedulingOptions 파라미터를 사용하는 생성된 클라이언트의 활동 메서드를 호출할 때 재정의할 수 있습니다. USE_WORKER_TASK_LIST를 기본값으로 설정합니다. 이 값은 등록을 수행 중인 작업자가 사용하는 작업 목록을 사용해야 함을 나타내는 특수 값입니다.

defaultTaskScheduleToStartTimeoutSeconds

이 활동 유형에 대해 Amazon SWF에 등록할 defaultTaskScheduleToStartTimeout을 지정합니다. 이것은 이 활동 유형의 작업이 작업자에게 할당될 때까지 대기하도록 허용되는 최대 시간입니다. 자세한 내용은 Amazon Simple Workflow Service API 참조를 참조하십시오.

defaultTaskHeartbeatTimeoutSeconds

이 활동 유형에 대해 Amazon SWF에 등록될 defaultTaskHeartbeatTimeout을 지정합니다. 활동 작업자는 이 시간 내에 하트비트를 제공해야 합니다. 그러지 않으면 작업이 제한 시간을 초과하게 됩니다. 이 제한 시간을 비활성화해야 함을 암시하는 특수 값인 -1이 기본값으로 설정됩니다. 자세한 내용은 Amazon Simple Workflow Service API 참조를 참조하십시오.

defaultTaskStartToCloseTimeoutSeconds

이 활동 유형에 대해 Amazon SWF에 등록할 defaultTaskStartToCloseTimeout을 지정합니다. 이 제한 시간을 통해 작업자가 이 유형의 활동 작업을 처리하는 데 허용되는 최대 시간이 결정됩니다. 자세한 내용은 Amazon Simple Workflow Service API 참조를 참조하십시오.

defaultTaskScheduleToCloseTimeoutSeconds

이 활동 유형에 대해 Amazon SWF에 등록될 defaultScheduleToCloseTimeout을 지정합니다. 이 제한 시간을 통해 작업이 개방 상태에 머물 수 있는 총 시간이 결정됩니다. 이 제한 시간을 비활성화해야 함을 암시하는 특수 값인 -1이 기본값으로 설정됩니다. 자세한 내용은 Amazon Simple Workflow Service API 참조를 참조하십시오.

@비동기식

워크플로 조정 로직에 있는 메서드에서 사용되는 경우 메서드를 비동기식으로 실행해야 함을 나타냅니다. 메서드를 호출하면 즉시 결과를 반환하지만, 실제 실행은 메서드로 전달된 모든 Promise<> 파라미터가 준비 상태가 될 때 비동기식으로 이루어집니다. @Asynchronous라는 주석이 달린 메서드에는 Promise<> 또는 void 반환 유형이 있어야 합니다.

daemon

비동기식 메서드에 대해 생성된 작업이 대몬(daemon) 작업인지 여부를 나타냅니다. 기본적으로 False로 설정됩니다.

@실행

@Workflow 주석이 붙은 인터페이스의 메서드에서 사용되는 경우 워크플로의 진입점을 식별합니다.

중요

인터페이스에 있는 메서드 하나만 @Execute로 장식할 수 있습니다.

이 주석에는 다음 파라미터를 지정할 수 있습니다.

name

워크플로 유형의 이름을 지정합니다. 설정되지 않은 경우 이름은 {접두사}{이름}으로 기본 설정됩니다. 여기에서 {접두사}는 '.' 앞에 있는 워크플로 인터페이스의 이름이고 {이름}은 워크플로에 있는 @Execute 장식 메서드의 이름입니다.

version

워크플로 유형의 버전을 지정합니다.

@ExponentialRetry

활동 또는 비동기식 메서드에서 사용되는 경우 메서드에서 미처리 예외가 발생하면 기하급수적 재시도 정책을 설정합니다. 재시도는 시도 회수의 제곱으로 계산되는 백오프 기간 이후에 이루어집니다.

이 주석에는 다음 파라미터를 지정할 수 있습니다.

intialRetryIntervalSeconds

첫 번째 재시도가 이루어질 때까지 대기할 시간을 지정합니다. 이 값은 maximumRetryIntervalSecondsretryExpirationSeconds보다 커서는 안 됩니다.

maximumRetryIntervalSeconds

재시도 사이의 최대 시간 간격을 지정합니다. 최대 시간에 이르면 재시도 간격은 이 값으로 제한됩니다. 무제한 시간을 뜻하는 -1이 기본값으로 설정됩니다.

retryExpirationSeconds

기하급수적 재시도가 중단되는 시간을 지정합니다. 만료가 없음을 뜻하는 -1이 기본값으로 설정됩니다.

backoffCoefficient

재시도 간격을 계산하는 데 사용되는 계수를 지정합니다. 기하급수적 재시도 전략 섹션을 참조하세요.

maximumAttempts

기하급수적 재시도가 중단되는 시도 회수를 지정합니다. 재시도 횟수에 제한이 없음을 뜻하는 -1이 기본값으로 설정됩니다.

exceptionsToRetry

재시도를 트리거해야 하는 예외 유형의 목록을 지정합니다. 이 유형의 미처리 예외는 더 전파되지 않고, 메서드는 계산된 재시도 간격이 지나면 재시도됩니다. 기본적으로 목록에는 Throwable이 포함됩니다.

excludeExceptions

재시도를 트리거해서는 안 되는 예외 유형의 목록을 지정합니다. 이 유형의 미처리 예외가 전파되도록 허용됩니다. 목록은 기본적으로 비어 있습니다.

@GetState

@Workflow 주석이 붙은 인터페이스의 메서드에서 사용되는 경우 이 메서드가 최신 워크플로 실행 상태를 조회하는 데 사용되는지 식별합니다. @Workflow라는 주석이 달린 인터페이스에는 이 주석이 달린 메서드가 최대 한 개 있을 수 있습니다. 이 주석이 달린 메서드에서는 파라미터를 받아들여서는 안 되고 void가 아닌 반환 유형이 있어야 합니다.

@ManualActivityCompletion

활동 메서드에서 이 주석을 사용하여, 메서드에서 결과가 반환될 때 활동 작업이 완료되어서는 안 됨을 나타낼 수 있습니다. 활동 작업은 자동으로 완료되지 않으므로 Amazon SWF API를 사용하여 직접 수동으로 완료해야 합니다. 이 기능은 활동 작업이 자동화되지 않은 일부 외부 시스템에 위임되거나 완료를 위해 인간의 개입이 필요한 경우의 사용 사례로 유용합니다.

@신호

@Workflow 주석이 붙은 인터페이스의 메서드에서 사용되는 경우 인터페이스에서 선언한 워크플로 유형의 실행에서 수신할 수 있는 신호를 식별합니다. 이 주석을 사용하려면 신호 메서드를 정의해야 합니다.

이 주석에는 다음 파라미터를 지정할 수 있습니다.

name

신호 이름의 이름 부분을 지정합니다. 지정하지 않을 경우 메서드의 이름이 사용됩니다.

@SkipRegistration

@Workflow 주석이 붙은 인터페이스에서 사용되는 경우 워크플로 유형이 Amazon SWF에 등록되어서는 안 됨을 나타냅니다. @Workflow라는 주석이 달린 인터페이스에서는 @WorkflowRegistrationOptions@SkipRegistrationOptions 주석 둘 다가 아닌 둘 중 하나를 사용해야 합니다.

@Wait 및 @NoWait

이 주석을 Promise<> 유형의 파라미터에서 사용하여 AWS Flow Framework for Java가 이 파라미터가 준비 상태가 될 때까지 기다렸다가 메서드를 실행할지 여부를 나타낼 수 있습니다. 기본적으로 @Asynchronous 메서드로 전달되는 Promise<> 파라미터는 메서드가 실행되기 전에 준비 상태가 되어야 합니다. 어떤 상황에서는 이 기본 동작을 재정의해야 합니다. @Asynchronous 메서드로 전달되고 @NoWait라는 주석이 달린 Promise<> 파라미터는 대기 대상이 아닙니다.

List<Promise<Int>>와 같이 약속이 포함된 모음 파라미터(또는 약속의 하위 클래스)는 @Wait라는 주석이 달려 있어야 합니다. 기본적으로 프레임워크에서는 모음의 멤버를 기다리지 않습니다.

@워크플로

인터페이스에서 워크플로 유형을 선언할 때 이 주석이 사용됩니다. 워크플로에 대해 진입점을 선언하려면 이 주석으로 장식된 인터페이스에 @실행 주석으로 장식된 메서드가 정확히 한 개 포함되어 있어야 합니다.

참고

인터페이스에는 동시에 선언된 @Workflow@Activities 주석이 둘 다 있을 수 없습니다. 이 둘은 상호 배타적입니다.

이 주석에는 다음 파라미터를 지정할 수 있습니다.

dataConverter

이 워크플로 유형의 워크플로 실행에 요청을 전송하고 그로부터 결과를 수신할 때 사용할 DataConverter를 지정합니다.

기본값은 모든 요청 및 응답 데이터를 JavaScript Object Notation(JSON)으로 처리하기 위해 결국 JsonDataConverter로 폴백하는 NullDataConverter입니다.

import com.amazonaws.services.simpleworkflow.flow.annotations.Execute; import com.amazonaws.services.simpleworkflow.flow.annotations.Workflow; import com.amazonaws.services.simpleworkflow.flow.annotations.WorkflowRegistrationOptions; @Workflow @WorkflowRegistrationOptions(defaultExecutionStartToCloseTimeoutSeconds = 3600) public interface GreeterWorkflow { @Execute(version = "1.0") public void greet(); }

@WorkflowRegistrationOptions

@Workflow 주석이 달린 인터페이스에서 사용되는 경우 워크플로 유형 등록 시 Amazon SWF에서 사용한 기본 설정을 제공합니다.

참고

@Workflow라는 주석이 달린 인터페이스에서는 @WorkflowRegistrationOptions 또는 @SkipRegistrationOptions 주석을 사용해야 합니다. 둘 다 지정할 수는 없습니다.

이 주석에는 다음 파라미터를 지정할 수 있습니다.

설명

워크플로 유형에 대한 텍스트 설명(선택 사항)입니다.

defaultExecutionStartToCloseTimeoutSeconds

워크플로 유형에 대해 Amazon SWF에 등록될 defaultExecutionStartToCloseTimeout을 지정합니다. 이것은 이 유형의 워크플로 실행이 완료되는 데 걸리는 최대 시간입니다.

워크플로 제한 시간에 대한 자세한 내용은 Amazon SWF 제한 시간 유형 단원을 참조하십시오.

defaultTaskStartToCloseTimeoutSeconds

워크플로 유형에 대해 Amazon SWF에 등록될 defaultTaskStartToCloseTimeout을 지정합니다. 이것은 이 유형의 워크플로 실행에 대한 결정 작업 하나가 완료되는 데 허용되는 시간입니다.

defaultTaskStartToCloseTimeout을 지정하지 않으면 30초로 기본 설정됩니다.

워크플로 제한 시간에 대한 자세한 내용은 Amazon SWF 제한 시간 유형 단원을 참조하십시오.

defaultTaskList

이 워크플로 유형의 실행에 대한 결정 작업에 사용되는 기본 작업 목록입니다. 여기에 설정된 기본값은 워크플로 실행을 시작할 때 StartWorkflowOptions를 사용하여 재정의할 수 있습니다.

defaultTaskList를 지정하지 않으면 USE_WORKER_TASK_LIST로 기본 설정됩니다. 이 값은 워크플로 등록을 수행 중인 작업자가 사용하는 작업 목록을 사용해야 함을 나타냅니다.

defaultChildPolicy

이 유형의 실행이 종료된 경우 하위 워크플로에 사용할 정책을 지정합니다. 기본값은 ABANDON입니다. 가능한 값은 다음과 같습니다.

  • ABANDON – 하위 워크플로 실행이 계속 실행되도록 합니다

  • TERMINATE – 하위 워크플로 실행을 종료합니다

  • REQUEST_CANCEL – 하위 워크플로 실행의 취소를 요청합니다