为什么我在从 Python2 NDB 查询时遇到由 Cloud NDB 创建的实体的间歇性断言错误?

问题描述 投票:0回答:0

我最近从 Python2 / ndb 迁移到 Cloud NDB 和 python3 for app engine。我需要在同一个数据存储上同时运行两个版本。

我发现 entity.get() 对于由 Cloud NDB 创建的实体,它在 python2 服务上抛出大约 20% 的请求的断言错误。有没有办法更新 .get() 或以其他方式确保它可以正确地从数据存储中提取它?

抛出错误

"/base/alloc/tmpfs/dynamic_runtimes/python27g/19fab4ec47735ec6/python27/python27_lib/versions/1/google/appengine/ext/ndb/model.py", line 1234, in _opt_call_to_base_type
    value = _BaseValue(self._call_to_base_type(value))
  File "/base/alloc/tmpfs/dynamic_runtimes/python27g/19fab4ec47735ec6/python27/python27_lib/versions/1/google/appengine/ext/ndb/model.py", line 751, in __init__
    assert not isinstance(b_val, list), repr(b_val)
AssertionError: []

我以为可能是缓存冲突,结果大约有25%的查询有问题

来自日志

google-app-engine google-cloud-datastore app-engine-ndb
© www.soinside.com 2019 - 2024. All rights reserved.