【问题标题】:DynamoDB update after updated it's again going back old valueDynamoDB 更新后更新它再次回到旧值
【发布时间】:2021-04-03 09:44:44
【问题描述】:

我正在尝试更新 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) 但结果是一样的。我该如何解决这个问题?

【问题讨论】:

    标签: python python-3.x amazon-dynamodb


    【解决方案1】:

    您是否尝试过使用一致读取? https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadConsistency.html 在类似线程DynamoDB consistent read results in schema error中查看更多数据

    data = table.get_item(phone_number="42", consistent_read=True)
    

    【讨论】:

      猜你喜欢
      • 2020-05-06
      • 2019-09-26
      • 1970-01-01
      • 2012-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-14
      • 1970-01-01
      相关资源
      最近更新 更多