繁体   English   中英

DynamoDB ConditionalCheckFailedException 抛出但成功

[英]DynamoDB ConditionalCheckFailedException thrown but succeeds

我认为在很多情况下都看到 DynamoDB 条件放置抛出 ConditionalCheckFailedException 但成功了。 通常在这种情况下,请求需要很长时间(~10 秒)才能完成,但我可以看到请求已更新,尽管抛出了 ConditionalCheckFailedException(并且花费了几秒钟)。

顺便说一下,我不会强制 DDB 请求超时。

这是一个错误,还是我误解了某些 DDB 条件看跌合约? 有没有人遇到过这个问题?

这么晚回答是为了通知其他人:

ConditionCheckFailedException但项目被保留:

这通常发生在您将项目保存到 DynamoDB 时,DynamoDB 确认写入请求但响应在返回路径上丢失,这可能由于多种原因而发生,请记住 DynamoDB 是云中最大的分布式系统之一。

这会导致 SDK 在等待响应时超时,然后触发 SDK 重试。 当重试写入请求时,条件现在评估为False ,因为该项目已经存在,这又会抛出ConditionCheckFailedException ,这可能会导致混淆。

当我收到ConditionCheckFailedException时,我通常会对该项目执行高度一致的GetItem请求,以确保它存在我期望的值并继续。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM