SWF 基本知识 - 适用于 Java 的 Amazon SDK 1.x
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

自2024年7月31日起, 适用于 Java 的 Amazon SDK 1.x已进入维护模式,并将于2025年12月31日end-of-support上线。我们建议您迁移到Amazon SDK for Java 2.x以继续接收新功能、可用性改进和安全更新。

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

SWF 基本知识

这些是 Amazon SWF 使用的一般模式 适用于 Java 的 Amazon SDK。这意味着它主要用于参考。有关更完整的入门教程,请参阅构建简单 Amazon SWF 应用程序

依赖项

基本 Amazon SWF 应用程序将需要以下依赖关系,这些依赖关系包含在 适用于 Java 的 Amazon SDK:

  • aws-java-sdk-1.12.*.jar

  • commons-logging-1.2.*.jar

  • httpclient-4.3.*.jar

  • httpcore-4.3.*.jar

  • jackson-annotations-2.12.*.jar

  • jackson-core-2.12.*.jar

  • jackson-databind-2.12.*.jar

  • joda-time-2.8.*.jar

注意

虽然这些程序包的版本号将因您拥有的 SDK 版本而异,但 SDK 附带的版本已经过兼容性测试,并且您应使用这些版本。

Amazon Flow Framework 对于 Java 应用程序,需要额外的设置额外的依赖关系。有关使用框架的更多信息,请参阅《Amazon Flow Framework for Java Developer Guide》。

导入

通常,您可以将以下导入用于代码开发:

import com.amazonaws.services.simpleworkflow.AmazonSimpleWorkflowClientBuilder; import com.amazonaws.services.simpleworkflow.model.*;

不过,好的做法是仅导入您所需的类。您可能最终会在 com.amazonaws.services.simpleworkflow.model 工作区中指定特定的类:

import com.amazonaws.services.simpleworkflow.model.PollForActivityTaskRequest; import com.amazonaws.services.simpleworkflow.model.RespondActivityTaskCompletedRequest; import com.amazonaws.services.simpleworkflow.model.RespondActivityTaskFailedRequest; import com.amazonaws.services.simpleworkflow.model.TaskList;

如果您使用 Amazon Flow Framework 适用于 Java 的,则将从com.amazonaws.services.simpleworkflow.flow工作区导入类。例如:

import com.amazonaws.services.simpleworkflow.AmazonSimpleWorkflow; import com.amazonaws.services.simpleworkflow.flow.ActivityWorker;
注意

除了基本要求之外, Amazon Flow Framework 适用于 Java 还有其他要求 适用于 Java 的 Amazon SDK。有关更多信息,请参阅《Amazon Flow Framework for Java Developer Guide》。

使用 SWF 客户端类

您的基本接口 Amazon SWF 是通过AmazonSimpleWorkflowClientAmazonSimpleWorkflowAsyncClient类进行的。二者之间的主要差异是,\*AsyncClient 类返回 Future 对象以进行并发 (异步) 编程。

AmazonSimpleWorkflowClient swf = AmazonSimpleWorkflowClientBuilder.defaultClient();