本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在适用于 Ruby 的 Amazon SDK 中配置重试
适用于 Ruby 的 Amazon SDK 为服务请求提供了默认的重试行为和可自定义的配置选项。调用 Amazon Web Services 服务偶尔会返回意外异常。如果重试调用,某些类型的错误(例如节流或暂时错误)可能会成功。
重试行为可以使用共享 Amazon config 文件中的环境变量或设置进行全局配置。有关此方法的信息,请参阅《Amazon SDK 和工具参考指南》中的重试行为。它还包括有关重试策略实现以及如何选择一种策略而不是另一种策略的详细信息。
或者,您也可以在代码中配置这些选项,如以下部分所示。
在代码中指定客户端重试行为
默认情况下,适用于 Ruby 的 Amazon 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 文件中设置的设置。