更新后的 DynamoDB 更新再次返回旧值
DynamoDB update after updated it's again going back old value
我正在尝试更新 dynamoDb 中的项目数,我在下面写了函数
def put_count_in_table(pk, sk, max_price, min_price, mean_price, total_count):
dynamodb = getDynamoDb()
table = dynamodb.Table(TABLE_ITEM_CATEGORIES)
response = table.update_item(
Key={
'pk': pk,
'sk': sk,
},
UpdateExpression="set max_price=:m, min_price=:n, mid_price=:p, total_count=:q",
ExpressionAttributeValues={
':m': max_price,
':n': min_price,
':p': mean_price,
':q': total_count
}
)
return response
对于项目更新,我已经通过循环调用函数,如下所示
for i, item in enumerate(items):
shopItem = getShopItem(item)
res = put_count_in_table(shopItem['pk'], shopItem['sk'], shopItem['max_price'],
shopItem['min_price'], shopItem['mid_price'], shopItem['total_count'])
问题是某些产品更新正常,但在某些情况下,某些产品正在更新,但在 2-3 秒后又恢复为旧值。我在更新前给了 sleep(3) 但结果是一样的。我该如何解决这个问题?
您是否尝试过使用一致性读取?
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadConsistency.html
在类似线程中查看更多数据
data = table.get_item(phone_number="42", consistent_read=True)
我正在尝试更新 dynamoDb 中的项目数,我在下面写了函数
def put_count_in_table(pk, sk, max_price, min_price, mean_price, total_count):
dynamodb = getDynamoDb()
table = dynamodb.Table(TABLE_ITEM_CATEGORIES)
response = table.update_item(
Key={
'pk': pk,
'sk': sk,
},
UpdateExpression="set max_price=:m, min_price=:n, mid_price=:p, total_count=:q",
ExpressionAttributeValues={
':m': max_price,
':n': min_price,
':p': mean_price,
':q': total_count
}
)
return response
对于项目更新,我已经通过循环调用函数,如下所示
for i, item in enumerate(items):
shopItem = getShopItem(item)
res = put_count_in_table(shopItem['pk'], shopItem['sk'], shopItem['max_price'],
shopItem['min_price'], shopItem['mid_price'], shopItem['total_count'])
问题是某些产品更新正常,但在某些情况下,某些产品正在更新,但在 2-3 秒后又恢复为旧值。我在更新前给了 sleep(3) 但结果是一样的。我该如何解决这个问题?
您是否尝试过使用一致性读取?
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadConsistency.html
在类似线程中查看更多数据
data = table.get_item(phone_number="42", consistent_read=True)