2011-09-28 2 views
11

Я тестирую пример API Amazon MWS API in C# for submit feeds, однако после установки секретного ключа AWS, ключа доступа и т. Д. В коде я получаю ошибку RequestThrottled, поэтому есть подробности, что это такое, но не удалось найти какой-либо пример кода как это решить.RequestThrottling issue в Amazon MWS API

Я хотел бы загрузить 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> 

Может кто-нибудь дать мне решение разрешить это?

Спасибо!

ответ

23

По состоянию на Amazon's API reference операция SubmitFeed имеет максимальную квоту запроса 15 и скорость восстановления запроса каждые 2 минуты. Это означает, что вам разрешено совершать вызовы этой операции в пакете из 15, но после этого вы дросселируете в течение 2 минут, пока Amazon не позволит вам сделать другой запрос. Вы можете найти это лучше объяснено в их developer guide, где они лучше описывают, как они используют leaky bucket algorithm.

Возможно, в вашем канале нет ничего плохого, но поскольку вы делали слишком много запросов (возможно, более 15), вы получили дросселирование. Мой совет заключается в том, чтобы создать свой код таким образом, чтобы вы учитывали подавление Amazon и имели алгоритм отсрочки, когда вас дросселируют (например, возвращайтесь после периода «восстановления», определенного для типа вызова «делаю»). Кроме того, имейте в виду, что другое ограничение MWS имеет 10000 запросов в час для всех типов вызовов.

+1

Ссылка на лучшую документацию (т.е. не PDF): [SubmitFeed] (http://docs.developer.amazonservices.com/en_ES/feeds/Feeds_SubmitFeed.html) и [Дроссельное пояснение] (http: //docs.developer. amazonservices.com/en_ES/dev_guide/DG_Throttling.html) – drzaus

Смежные вопросы