python – 在Google App Engine上顺序插入的事务冲突.为什么?

我在Google App Engine上插入一组记录.我批量插入它们以避免截止日期异常.

当有大量记录(例如1k)时,我总会收到意外:

Transaction collision for entity group
with key

datastore_types.Key.from_path(u’GroupModel’,
u’root’, _app=u’streamtomail’).
Retrying…

这种情况总是发生.

在本地环境中,它没有任何问题.

如果我使用顺序进程并且没有人同时使用系统,那么如何发生事务冲突呢?

这是我用于批处理的代码:

def deferred_worker():
 if next_chunk():
   process_chunk()
   deferred.defer(deferred_worker)

where in * process_chunk()*我在数据库中执行了50次插入

最佳答案 碰撞位于“GroupModel”实体的实例上,其键名为“root”.基于此,我猜你将所有内容都放在一个实体组中,并将其作为父实体.如文档
here所示,具有相同父项的每个实体都在同一实体组中,事​​务被序列化.因此,对该组中任何实体的任何并发更新都可能与任何其他实体发生冲突.

点赞