在 Ruby 的 Amazon SDK 中配置重试 - Amazon 适用于 Ruby 的 SDK
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

在 Ruby 的 Amazon SDK 中配置重试

适用于 Ruby 的 Amazon SDK 为服务请求提供了默认的重试行为和可自定义的配置选项。调用 Amazon Web Services 服务 偶尔会返回意外异常。如果重试呼叫,某些类型的错误(例如限制或暂时错误)可能会成功。

重试行为可以使用共享 Amazon config文件中的环境变量或设置进行全局配置。有关此方法的信息,请参阅《工具参考指南》Amazon SDKs 和《工具参考指南》中的重试行为。它还包括有关重试策略实现以及如何选择一种策略而不是另一种策略的详细信息。

或者,也可以在代码中配置这些选项,如以下各节所示。

在代码中指定客户端重试行为

默认情况下, Amazon 适用于 Ruby 的 SDK 最多执行三次重试,重试间隔 15 秒,总共最多四次尝试。因此,操作可能需要长达 60 秒才超时。

以下示例在区域 us-west-2 中创建 Amazon S3 客户端,并指定每个客户端操作的两次重试之间等待五秒。因此,Amazon S3 客户端操作可能需要长达 15 秒才超时。

s3 = Aws::S3::Client.new( region: region, retry_limit: 2, retry_backoff: lambda { |c| sleep(5) } )

在代码中或服务客户端本身上设置的任何显式设置优先于在环境变量或共享 config 文件中设置的设置。