【问题标题】:Check for atomic context检查原子上下文
【发布时间】:2016-08-09 18:30:30
【问题描述】:

我的一种方法在原子上下文中运行时不起作用。我想问 Django 是否正在运行事务。

该方法可以创建线程或进程并将结果保存到数据库。这有点奇怪,但是当可以使用进程时会有巨大的性能优势。

我发现在 Django 中,特别是流程有点粗略。我知道如果方法选择将结果保存在进程中并且方法在原子上下文中运行,Django 会引发异常。

如果我可以检查原子上下文,那么我可以立即抛出异常(而不是得到奇怪的错误)或强制该方法只创建一个线程。

我找到了is_managed() 方法,但根据this question,它已在 Django 1.8 中被删除。

【问题讨论】:

    标签: python django django-models transactions django-database


    【解决方案1】:

    根据this ticket,有几种检测方法:not transaction.get_autocommit()(使用公共 API)或transaction.get_connection().in_atomic_block(使用私有 API)。

    【讨论】:

    • 哎呀,我看了看票,但在评论 #2 之后就停止阅读了。
    猜你喜欢
    • 2018-04-14
    • 1970-01-01
    • 1970-01-01
    • 2013-03-21
    • 2022-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多