本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
适用于 Java 的 AWS Flow Framework 的注释
主题
@活动
此注释可在接口上用于声明一组活动类型。使用此注释进行注释的接口中的每个方法都表示活动类型。接口不能同时具有 @Workflow
和 @Activities
注释。
可对此注释指定以下参数:
activityNamePrefix
-
指定在接口中声明的活动类型的名称前缀。如果设置为空字符串(这是默认值),则后跟“.”的接口名称将用作前缀。
version
-
指定在接口中声明的活动类型的默认版本。默认值为
1.0
。 dataConverter
-
指定在创建此活动类型的任务及其结果时用于序列化/反序列化数据的
DataConverter
的类型。默认设置为NullDataConverter
,这指示应使用JsonDataConverter
。
@活动
可在使用 @Activities
进行注释的接口中的方法上使用此注释。
可对此注释指定以下参数:
name
-
指定活动类型的名称。默认为空字符串,这指示应使用默认的前缀和活动方法名称来确定活动类型的名称(其格式为 {prefix}{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
-
指示为异步方法创建的任务是否应为守护程序任务。默认情况下为
False
。
@Execute
在使用 @Workflow
注释进行注释的接口中的方法上使用时,标识工作流的入口点。
重要
只有接口中的一个方法可以使用 @Execute
进行修饰。
可对此注释指定以下参数:
name
-
指定工作流类型的名称。如果未设置,则名称默认为 {prefix}{name},其中 {prefix} 是后跟“.”的工作流程接口,{name} 是工作流程中
@Execute
装饰的方法。 version
-
指定工作流类型的版本。
@ExponentialRetry
在活动或异步方法上使用时,设置该方法引发未处理异常时的指数重试策略。在退避期之后进行重试尝试,退避期通过尝试次数的幂进行计算。
可对此注释指定以下参数:
intialRetryIntervalSeconds
-
指定在进行第一次重试尝试之前等待的持续时间。此值不应大于
maximumRetryIntervalSeconds
和retryExpirationSeconds
。 maximumRetryIntervalSeconds
-
指定重试尝试之间的最长持续时间。达到后,重试间隔的上限为此值。默认设置为 -1,这表示持续时间不受限制。
retryExpirationSeconds
-
指定在多长的持续时间之后,指数重试将停止。默认设置为 -1,这表示不会过期。
backoffCoefficient
-
指定用于计算重试间隔的系数。请参阅指数重试策略。
maximumAttempts
-
指定在多少次尝试之后,指数重试将停止。默认设置为 -1,这表示对重试尝试次数没有限制。
exceptionsToRetry
-
指定应触发重试的异常类型列表。这些类型的未处理异常不会进一步传播,将在计算的重试间隔后重试方法。默认情况下,此列表包含
Throwable
。 excludeExceptions
-
指定不应触发重试的异常类型列表。将允许传播此类型的未处理异常。此列表默认为空。
@GetState
在使用 @Workflow
注释进行注释的接口中的方法上使用时,标识该方法用于检索最新工作流执行状态。在具有 @Workflow
注释的接口中最多可以有一个具有此注释的方法。具有此注释的方法不得使用任何参数,并且必须具有非 void
的返回类型。
@ManualActivityCompletion
此注释可在活动方法上用于指示在该方法返回时活动任务不应完成。活动任务不会自动完成,需要直接使用 Amazon SWF API 来手动完成。对于将活动任务委派给一些不是自动的或需要人为干预才能完成的外部系统的使用案例,这非常有用。
@Signal
在使用 @Workflow
注释进行注释的接口中的方法上使用时,标识可通过该接口声明的工作流类型的执行获得的信号。定义信号方法需要使用此注释。
可对此注释指定以下参数:
name
-
指定信号名称的名称部分。如果未设置,将使用方法的名称。
@SkipRegistration
在使用 @Workflow
注释进行注释的接口上使用时,可用于指示该工作流类型不应在 Amazon SWF 注册。必须在使用 @Workflow
注释的接口上使用 @WorkflowRegistrationOptions
和 @SkipRegistrationOptions
注释之一,但不能同时使用这两个注释。
@Wait 和 @NoWait
这些注释可在 Promise<>
类型的参数中使用,用于指示适用于 Java 的 AWS Flow Framework 是否应在执行方法之前等待其准备就绪。默认情况下,传递给 @Asynchronous
方法的 Promise<>
参数必须已准备就绪,然后方法才能执行。在某些情况下,有必要覆盖此默认行为。传递到 @Asynchronous
方法且使用 @NoWait
注释的 Promise<>
参数不等待。
必须使用 @Wait
注释来注释包含 Promise 的参数 (或其子类) 的集合,如 List<Promise<Int>>
。默认情况下,框架不等待集合的成员。
@工作流
此注释在接口上用于声明工作流 类型。使用此注释修饰的接口应包含一个使用 @Execute 注释修饰的方法来声明您的工作流的入口点。
注意
接口不能同时声明 @Workflow
和 @Activities
注释;它们相互排斥。
可对此注释指定以下参数:
dataConverter
-
指定在将请求发送给此工作流类型的工作流执行并从其接收结果时要使用哪个
DataConverter
。默认值为
NullDataConverter
,这转而依赖JsonDataConverter
以 JavaScript 对象表示法 (JSON) 来处理所有请求和响应数据。
示例
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
– 请求取消子工作流执行
-