gpt4 book ai didi

python - ndb.toplevel 会破坏交易吗?

转载 作者:太空狗 更新时间:2023-10-29 21:46:31 27 4
gpt4 key购买 nike

以下代码按预期工作,不会触发断言:

@ndb.transactional
@ndb.tasklet
def Foo():
assert ndb.in_transaction()

以下代码中断,触发断言:

@ndb.transactional
@ndb.toplevel
def Foo():
assert ndb.in_transaction()

我尝试用 ndb.transaction 调用或 ndb.transaction_async 调用替换装饰器,但都不起作用。

ndb.toplevel 和事务是否存在错误?

最佳答案

我发现问题在于两者都创建了新的上下文。 transactional 创建一个上下文并确保在其中发生的所有写入都是不冲突的。 toplevel 创建一个上下文并确保在其中创建的所有 future 都得到解决。

因此,toplevel 破坏了事务的上下文。这两者在当前的实现中无法结合。

关于python - ndb.toplevel 会破坏交易吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21506231/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com