2013-04-08 52 views
2

我刚刚在使用AWS Java SDK中的SES软件包来发送电子邮件。而且我意识到这个类[AmazonSimpleEmailServiceAsyncClient][1]有很多 方法有Async标签。如何以及何时在AWS SES Java SDK中使用“异步”

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

回答

5

这些异步方法可用于AWS SDK for Java中的大多数/所有服务,并且由于连接到异步编程稍高的复杂性,当入门通常不使用,而仅在特定的使用情况建议还是需要它(因此这个答案解决您的问题仅来自于概念上的观点,并非针对Amazon SES)。

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

当你调用SDK中的标准之一操作,同步 客户,而SDK将您的密码会被锁定你的 请求,等待服务处理它,并解析响应。 这是一个简单的方法来使用SDK,但有一些 情况下,你只是想开始请求,并让你的代码继续执行。 SDK中的异步客户端可以让您 完成此操作。启动您的请求,并稍后检查回 看看他们是否完成。 [重点煤矿]

杰森也解释了两种最常见的用例凡在后台处理请求有道理

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

杰森的帖子还链接到他略为详细了解标的物之前的文章,其中描述了制造与AWS SDK的Java请求的各种同步和异步方法,并与一些额外的信息来帮助你总结请使用异步功能,请参阅Asynchronous Programming with the AWS SDK for Java(其他大部分相同的代码示例也包含异常处理)。