python - 检查原子上下文

标签 python django django-models transactions django-database

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

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

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

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

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

最佳答案

根据this ticket有几种方法可以检测到这一点:not transaction.get_autocommit()(使用公共(public) API)或 transaction.get_connection().in_atomic_block(使用私有(private) API)。

关于python - 检查原子上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36686867/

相关文章:

python - 运行时警告: invalid value encountered in longlong_scalars

python - 以关键字参数作为线程启动方法

mysql - 在 django 中建模以存储员工特定年、月和周的工作时间

python - 检查是否设置了唯一一个可选函数参数并获取其值

python - pip 安装错误 : SyntaxError: invalid syntax

python - Django 过滤器未返回正确的结果

django - 我有一个 TemplateDoesNotExist 错误。我可以更新我的模型但不能删除它们?

python - 多对多关系 禁止直接分配到多对多集合的前向端

Django模型-有没有办法像wagtail面板中的复选框一样选择多个页面?

python - 如何将所有数据从 sqlite 数据库导入到 Django 非相关数据库