【发布时间】:2012-11-25 06:27:43
【问题描述】:
我正在使用适用于 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);
}
}
我想这可行,但它是一个 bit 愚蠢。特别是,它将重复所有失败的请求,而不仅仅是受限制的请求。如果出现不可解决的错误,我真的不想重复请求。
为了更智能,我想在一个受限制的响应中查看唯一标识符(即特定错误消息)。但就我的一生而言,我无法捕获(或在 Internet 上的任何地方找到)样本限制响应。
补偿限制风险和最大限度提高满足请求的可能性的最佳方法是什么?
【问题讨论】:
标签: php amazon-dynamodb throttling