API рекламы продуктов Amazon возвращает 503 (услуга недоступна) слишком часто - PullRequest
0 голосов
/ 23 января 2019

Я написал небольшой PHP-скрипт, который загружает продукты из API рекламы продуктов Amazon.Для этого я использую PHP Laravel 5.5, библиотеки Apai-IO и Guzzle .

Я также отслеживаю все свои запросы и, по моему мнению, есть способслишком много 503 (Служба недоступна) возвращается из Amazons API. Потому что, как говорится, здесь У меня 8640 запросов в день и максимум 1 запрос в секунду.

Мой сценарий запускается cronjob каждые 15 минут в течение всего дня.Итак, мои сценарии запускаются 96 раз в день.Тем не менее, у меня есть некоторые проверки на возвращенный продукт.Если проверка одобряет возвращенный продукт, cronjob сделан.Если нет, скрипт попытается запросить новый продукт с интервалом между новым запросом и последним 5-секундным запросом.Но это также означает, что я могу выполнить 90 запросов за одно занятие, потому что 96 раз 90 равны максимальному пределу запроса 8640 в день.

Однако мой лимит запросов намного ниже лимита запросов.Это где-то около 2000-3000 запросов в день.И это то, что смущает меня.Я не понимаю, почему Amazon Product Advertising API возвращает 503 (услуга недоступна), когда у меня есть интервал времени не менее 5 секунд на запрос, а мои ежедневные запросы намного ниже предела ...

Это пример ошибки, которую я получаю, когда API возвращает запрос 503:

2019-01-23 08:28:05 - Error fetching Amazon product from API Server error: `GET http://webservices.amazon.de/onca/xml?AWSAccessKeyId=00000000000000000000&AssociateTag=my_tag-21&ItemId=B00UIAK6D8&Operation=ItemLookup&ResponseGroup=Large&Service=AWSECommerceService&Timestamp=2019-01-23T07%3A28%3A05Z&Version=2013-08-01&Signature=69eB66yi6zQu6IhCHj2sk0FJznfN3g169D2Ng8TKnz8%3D` resulted in a `503 Service Unavailable` response:
<?xml version="1.0"?>
<ItemLookupErrorResponse xmlns="http://ecs.amazonaws.com/doc/2013-08-01/"><Error><Code>RequestThro (truncated...)

Я могу предоставить вам, ребята, также некоторый код, если вы хотите ... Но я не думаю, что этодействительно необходимо?Потому что я почти уверен, что есть пауза не менее 5 секунд на запрос, потому что я использую sleep(5);, и поэтому я более чем уверен, что пауза составляет не менее 5 секунд на запрос!

Буду признателен за любую помощь!

...