2

我只是在使用 AWS Java SDK 中的 SES 包来发送电子邮件。我意识到这个类[AmazonSimpleEmailServiceAsyncClient][1]有很多带有Async标签的方法。

我只是好奇我们什么时候必须使用它,为什么以及如何使用它。我一直在环顾四周,但没有很好的资源。一些带有片段的概念性解释会很好。

4

1 回答 1

5

这些异步方法可用于AWS SDK for Java中的大多数/所有服务,并且通常在开始时不使用,因为异步编程的复杂性略高,而仅在特定用例建议或要求时使用(因此,此答案解决了您的问题仅从概念的角度来看,不特定于Amazon SES)。

您可以在 Jason Fulghum 最近的博客文章Asynchronous Requests with the AWS SDK for Java中找到一个很好的解释:

当您使用 SDK 中的标准同步客户端之一调用操作时,您的代码会在 SDK 发送您的请求、等待服务处理它并解析响应时被阻止。 这是使用 SDK 的一种简单方法,但在某些情况下,您只想启动请求并让代码继续执行。SDK 中的异步客户端允许您完全做到这一点。启动您的请求,稍后再回来查看它们是否已完成。[强调我的]

Jason 还解释了在后台处理请求的两个最常见用例:

  1. 用户界面响应性——UI应用程序非常适合异步客户端,因为您不想在 SDK 处理请求时锁定主 UI 线程,从而锁定整个 UI。网络问题可能会导致更长的处理时间,以及导致客户不满意的无响应 UI。
  2. 批处理-异步客户端的另一个重要用途是当您想要启动大量请求时。如果请求不需要串行执行,那么您可以通过使用异步客户端启动许多请求,所有这些都来自单个线程,从而在应用程序中获得大量吞吐量。

Jason 的帖子还链接到他关于该主题的更详细的早期文章,该文章描述了使用适用于 Java 的 AWS 开发工具包发出请求的各种同步和异步方法,并在结尾提供了一些额外信息以帮助您成功使用异步功能,请参阅异步使用适用于 Java 的 AWS 开发工具包进行编程(其他大部分相同的代码示例还包括异常处理)。

于 2013-04-08T13:08:49.303 回答