如何以及何时在AWS SES Java SDK中使用“异步”

时间:2013-04-08 02:29:41

标签: java amazon-web-services amazon-ses

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

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

1 个答案:

答案 0 :(得分:5)

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

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

  

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

Jason还解释了两个最常见的用例,其中处理请求在后台有意义

  1. 用户界面响应 - UI应用程序非常适合异步客户端,因为您不想锁定主UI线程,因此也不想锁定整个UI,而SDK处理请求。网络问题可能导致处理时间延长,以及导致客户不满意的无响应用户界面。
  2. 批处理 - 异步客户端的另一个重要用途是当您要启动大量请求时。如果请求不需要以串行方式执行,那么通过使用异步客户端启动许多请求,您可以在应用程序中获得大量吞吐量,所有这些都来自单个线程。
  3. Jason的帖子还链接到他之前关于主题的更详细的文章,其中描述了使用AWS SDK for Java发出请求的各种同步和异步方法,并总结了一些其他信息以帮助您使用异步功能成功,请参阅Asynchronous Programming with the AWS SDK for Java(其他大部分相同的代码示例也包含异常处理)。