我正在使用适用于 PHP 的 AWS 开发工具包以编程方式与 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);
}
}
我想这可行,但它有点愚蠢。特别是,它将重复所有失败的请求,而不仅仅是受限制的请求。如果出现不可解决的错误,我真的不想重复请求。
为了使它更智能,我想在一个受限制的响应中查看一个唯一标识符(即特定的错误消息)。但是对于我的一生,我无法捕获(或在互联网上的任何地方找到)样本限制响应。
补偿限制风险和最大化满足请求的可能性的最佳方法是什么?