私はこのようなコードでアマゾンの製品の広告API要求している:私は、彼らが毎秒1つのリクエストをしたいことが判明You are submitting requests too quickly. Please retry your requests at a slower rate.
.mapループでリクエスト率を制限する方法は?
:
products = asins.map do |asin|
item = Amazon::Ecs.item_lookup(asin, response_group: :Large)
json = {asin: item.get_element('Item').get('ASIN'),
manufacturer: item.get_element('ItemAttributes').get('Manufacturer'),
model: item.get_element('ItemAttributes').get('Model')}
end
と503エラーを取得します。 私の場合、これを行う最良の方法は何ですか?
複数のアイテムを一度に検索するAPIはありませんか? –
私は、ItemLookupリクエストごとに最大10個のItemIdsを許可していると思います。しかし、私が使用しているamazon-ecsの宝石はそれをサポートしていないと信じています。彼らが10個のアイテムを許可しても、検索するアイテムが何百もあるので、質問はまだ有効です。 –
@MarcinDoliwaマップループに 'sleep 1'を追加するだけではいかがですか? –