2011-09-28 4 views
11

Tôi đang thử nghiệm mẫu API của Amazon MWS API in C# for submit feeds tuy nhiên sau khi thiết lập khóa AWS bí mật, khóa truy cập vv trong mã tôi nhận được lỗi của RequestThrottled, do đó, có chi tiết đó là những gì nhưng không thể tìm thấy bất kỳ mẫu mã làm thế nào để giải quyết điều đó.RequestThrottling vấn đề trong Amazon MWS API

tôi muốn tải lên feed.xml vào tài khoản người bán amazon

<?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> 

Lỗi nhận theo dưới đây

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> 

bất cứ ai có thể cho tôi giải pháp để giải quyết này?

Cảm ơn!

Trả lời

23

Theo Amazon's API reference hoạt động SubmitFeed có hạn ngạch yêu cầu tối đa là 15 và tỷ lệ khôi phục yêu cầu 2 phút một lần. Điều này có nghĩa là bạn được phép thực hiện các cuộc gọi đến hoạt động này trong loạt 15, nhưng sau khi bạn bị điều chỉnh trong 2 phút, cho đến khi Amazon cho phép bạn thực hiện một yêu cầu khác. Bạn có thể tìm thấy điều này được giải thích rõ hơn trong số developer guide nơi chúng mô tả tốt hơn cách chúng sử dụng số leaky bucket algorithm.

Có thể không có gì sai với nguồn cấp dữ liệu của bạn, nhưng vì bạn đã thực hiện quá nhiều yêu cầu (có thể hơn 15) bạn đã bị điều chỉnh. Lời khuyên của tôi là xây dựng mã của bạn theo cách mà bạn xem xét Amazon throttlening và có một thuật toán back-off khi bạn đang được throttled (như trở lại sau một thời gian "khôi phục", cụ thể cho các loại gọi cho bạn đang làm). Ngoài ra, hãy nhớ rằng một giới hạn khác của MWS là 10000 yêu cầu mỗi giờ trên tất cả các loại cuộc gọi.

+1

Liên kết tài liệu tốt hơn (tức là không phải PDF): [SubmitFeed] (http://docs.developer.amazonservices.com/en_ES/feeds/Feeds_SubmitFeed.html) và [Giải thích điều chỉnh] (http: //docs.developer. amazonservices.com/en_ES/dev_guide/DG_Throttling.html) – drzaus