亚马逊 MWS API 中的 RequestThrottling 问题
Posted
技术标签:
【中文标题】亚马逊 MWS API 中的 RequestThrottling 问题【英文标题】:RequestThrottling issue in Amazon MWS API 【发布时间】:2011-11-26 22:09:54 【问题描述】:我正在测试Amazon MWS API in C# for submit feeds 的 API 示例,但是在代码中设置 AWS 密钥、访问密钥等后,我收到 RequestThrottled 错误,所以有详细信息,但找不到任何代码示例如何解决该问题.
我想上传 feed.xml 到亚马逊卖家账户
<?xml version="1.0" encoding="iso-8859-1"?>
<AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="amzn-envelope.xsd">
<Header>
<DocumentVersion>1.01</DocumentVersion>
<MerchantIdentifier>M_EXAMPLE_123456</MerchantIdentifier>
</Header>
<MessageType>Product</MessageType>
<PurgeAndReplace>true</PurgeAndReplace>
<Message>
<MessageID>1</MessageID>
<OperationType>Insert</OperationType>
<Product>
<SKU>56789</SKU>
<StandardProductID>
<Type>ASIN</Type>
<Value>B0EXAMPLEG</Value>
</StandardProductID>
<ProductTaxCode>A_GEN_NOTAX</ProductTaxCode>
<DescriptionData>
<Title>Example Product Title</Title>
<Brand>Example Product Brand</Brand>
<Description>This is an example product description.</Description>
<BulletPoint>Example Bullet Point 1</BulletPoint>
<BulletPoint>Example Bullet Point 2</BulletPoint>
<MSRP currency="USD">25.19</MSRP>
<Manufacturer>Example Product Manufacturer</Manufacturer>
<ItemType>example-item-type</ItemType>
</DescriptionData>
<ProductData>
<Health>
<ProductType>
<HealthMisc>
<Ingredients>Example Ingredients</Ingredients>
<Directions>Example Directions</Directions>
</HealthMisc>
</ProductType>
</Health>
</ProductData>
</Product>
</Message>
</AmazonEnvelope>
按以下错误获取
Caught Exception: Request from SubmitFeed:AKIAJI4PSK4HXY6UCNMA;A2DNAGZJ1EWQLW is
throttled.
Response Status Code: ServiceUnavailable
Error Code: RequestThrottled
Error Type: Sender
Request ID: fc59c802-04da-4dd3-89a8-db5f525cac39
XML: <ErrorResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><Error><Typ
e>Sender</Type><Code>RequestThrottled</Code><Message>Request from SubmitFeed:AKI
AJI4PSK4HXY6UCNMA;A2DNAGZJ1EWQLW is throttled.</Message><Detail>System.Object</D
etail></Error><RequestId>fc59c802-04da-4dd3-89a8-db5f525cac39</RequestId></Error
Response>
谁能给我解决这个问题的方法?
谢谢!
【问题讨论】:
【参考方案1】:根据Amazon's API reference,SubmitFeed
操作的最大请求配额为 15,每 2 分钟恢复一次请求。这意味着您可以在 15 次突发中调用此操作,但在此之后您会被限制 2 分钟,直到 Amazon 允许您发出另一个请求。
你可以在他们的developer guide 中找到更好的解释,他们更好地描述了他们如何使用leaky bucket algorithm
。
您的 Feed 可能没有任何问题,但由于您发出的请求过多(可能超过 15 个),您被限制了。我的建议是以这样一种方式构建你的代码,即你考虑到亚马逊的节流,并在你被节流时有一个回退算法(比如在“恢复率”期之后回来,具体到你的呼叫类型'正在做)。此外,请记住,MWS 的另一个限制是每小时 10000 个请求,适用于所有类型的呼叫。
【讨论】:
更好的文档链接(即不是 PDF):SubmitFeed 和 Throttling Explanation以上是关于亚马逊 MWS API 中的 RequestThrottling 问题的主要内容,如果未能解决你的问题,请参考以下文章