Я использую AWS SDK для PHP для программного взаимодействия с DynamoDB.
Я хотел бы определить, был ли задан запрос к DynamoDB, чтобы можно было сделать еще один запрос после небольшой задержки.
Сейчас я исхожу из предположения, что регулируемые запросы не выполняются. Amazon FAQs предполагает, что при дросселировании возвращается ошибка 400.
Итак, в настоящее время у меня есть логика, которая выглядит примерно так:
for( $i=0; $i<10; $i++ ) {
$response = $dynamodb->get_item($get_item_args);
if( $response->isOK() ) {
break;
} elseif( $i < 9 ) {
sleep(1);
}
}
Я полагаю, это работает, но это немного тупой. В частности, он будет повторять все неудавшиеся запросы, а не только регулируемые запросы. Если есть неразрешимая ошибка, я действительно не хочу повторять запрос.
Чтобы сделать это умнее, я хотел бы заглянуть внутрь регулируемого ответа на предмет уникального идентификатора (то есть конкретного сообщения об ошибке). Но хоть убей, я не могу записать (или найти где-нибудь в Интернете) образец дросселированного ответа.
Как лучше всего компенсировать риск дросселирования и максимизировать вероятность выполнения запроса?