【问题标题】:GAE: Datastore Transaction collision. Retrying... happens frequentlyGAE:数据存储事务冲突。重试...经常发生
【发布时间】:2020-08-16 03:37:39
【问题描述】:

我正在将 GAE Python 2.7 Standard 与 Datastore 结合使用。

问题是 Datastore 过于频繁地引发事务冲突。

我写了一个简单的测试代码。 (我知道这种代码不存在。它只是一个测试代码。)
我只是在事务中多次更新一个实体。

我认为不会发生任何冲突,因为我只是在更新同一个计划实体。

但是查看日志记录,“事务冲突。重试...”发生了好几次。

Datastore 导致事务冲突的原因是什么?

from google.appengine.ext import db

# get any entity
schedule = Schedule.get('entity_key')

def _txn(schedule):
    schedule.save()
    schedule.save()
    schedule.save()
    schedule.save()
xg_on = db.create_transaction_options(xg=True)
for i in range(0, 100):
    logging.info(i)
    db.run_in_transaction_options(xg_on,
                                  _txn,
                                  schedule)

【问题讨论】:

    标签: python-2.7 google-app-engine google-cloud-platform google-cloud-datastore


    【解决方案1】:

    当您尝试每秒多次更新实体时会发生此错误,这可能会导致延迟问题、超时和其他类型的错误。

    您可以查看数据存储区here 的最佳做法,并了解将来如何防止此类错误。

    【讨论】:

      猜你喜欢
      • 2020-05-16
      • 2013-09-07
      • 1970-01-01
      • 2020-06-05
      • 2012-03-09
      • 2021-01-23
      • 1970-01-01
      • 1970-01-01
      • 2013-08-31
      相关资源
      最近更新 更多