适用于 Java 的 AWS Flow Framework 的注释 - AWS Flow Framework 适用于 Java

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

适用于 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

指定在进行第一次重试尝试之前等待的持续时间。此值不应大于 maximumRetryIntervalSecondsretryExpirationSeconds

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 – 请求取消子工作流执行