2016-03-10 33 views
6

Tôi đang tạo trang web so sánh trò chơi và muốn nhận giá Amazon được bao gồm trong đó. Vấn đề tôi đang gặp phải là sử dụng API của họ để lấy giá cho 25.000 sản phẩm tôi đã có.API Amazon gửi yêu cầu quá nhanh

Tôi hiện đang sử dụng ItemLookup từ API Amazon và làm việc để truy lục giá, tuy nhiên sau khoảng 10 kết quả tôi nhận được thông báo lỗi 'Bạn đang gửi yêu cầu quá nhanh. Vui lòng thử lại yêu cầu của bạn với tốc độ chậm hơn '.

Cách tốt nhất để làm chậm tốc độ yêu cầu là gì?

Xin cảm ơn,

Trả lời

7

Nếu ứng dụng của bạn đang cố gửi yêu cầu vượt quá giới hạn yêu cầu tối đa cho tài khoản của bạn, bạn có thể nhận được thông báo lỗi từ API quảng cáo sản phẩm. Giới hạn yêu cầu cho mỗi tài khoản được tính toán dựa trên hiệu suất doanh thu. Mỗi tài khoản được sử dụng để truy cập API quảng cáo sản phẩm được cho phép giới hạn sử dụng ban đầu là 1 yêu cầu mỗi giây. Mỗi tài khoản sẽ nhận được thêm 1 yêu cầu mỗi giây (tối đa là 10) cho mỗi 4,600 đô la doanh thu mặt hàng được vận chuyển trong khoảng thời gian 30 ngày sau (khoảng 0,11 đô la mỗi phút).

Từ Amazon API Docs

Nếu bạn chỉ có kế hoạch chạy này một lần, sau đó chỉ cần ngủ một giây ở giữa các yêu cầu.

Nếu đây là thứ bạn đang lên kế hoạch chạy thường xuyên hơn, có thể đáng để tối ưu hóa nó hơn bằng cách đảm bảo rằng thời gian truy vấn trả về được lấy ra khỏi chế độ ngủ đó (vì vậy, nếu API của tôi truy vấn mất 200ms để quay lại, chúng tôi chỉ ngủ 800ms)

0

Vì nó chỉ cho biết sau 10 kết quả bạn nên kiểm tra xem bạn có thể nhận được bao nhiêu kết quả. Nếu nó luôn xuất hiện sau 10 yêu cầu nhanh, bạn có thể sử dụng

wait(500) 

hoặc một số ms khác. Nếu nó chỉ sau 10 lần, bạn có thể xây dựng một vòng lặp và thực hiện mọi yêu cầu thứ 9 này.

0

khi yêu cầu của bạn Rất nhiều lần lặp lại. sau đó bạn có thể tạo bộ nhớ cache mỗi ngày rõ ràng bối cảnh. hoặc Liên hệ với ủy quyền mua hàng aws

0

Tôi đã trải qua cùng một vấn đề ngay cả khi tôi trì hoãn 1 giây trở lên.

Tôi tin rằng khi bạn bắt đầu thực hiện quá nhiều yêu cầu chỉ với một giây chậm trễ, Amazon không thích điều đó và nghĩ rằng bạn là người gửi spam.

Bạn sẽ phải tạo một cặp khóa khác (và sử dụng nó khi thực hiện thêm yêu cầu) và đặt độ trễ 1.1 giây để có thể thực hiện yêu cầu nhanh trở lại.

Điều này phù hợp với tôi.