gpt4 book ai didi

python - 如何从多进程(子进程)获取django.db.connection.queries数据?

转载 作者:太空宇宙 更新时间:2023-11-03 17:03:38 24 4
gpt4 key购买 nike

我将 Django modelOracle 一起使用,并且有两个进程分别具有数据库连接。

为了让两个进程分别拥有数据库连接,我在fork一个进程之前先关闭主进程中的连接,然后再fork一个新进程,这样就可以防止子进程复制数据库连接。

    from django.db import connection 
connection.close()

childProcess.start()

因此,每个进程在第一次尝试通过 Django 模型访问数据库时都会重新打开数据库连接。

在这种情况下,在主进程中,django.db.connection.queries可以正常工作,在进程中返回查询信息,但在子进程中,它始终返回一个空列表。

如何使用django.db.connection.queries在子进程中获取查询信息?

最佳答案

我发现我提出的问题出了问题。

在子进程中,它创建一个新线程。

该线程仅监视主线程(在子进程中)操作的查询。

我认为Django提供的connection对象是进程中的global资源。(这就是我分离线程规则的原因,一种是运行查询,另一种是监视查询)。

但是,经过一系列的测试,我发现一个connection对象只收集Thread操作的查询信息。

这意味着django.db.connection是按线程而不是进程运行的。

结果,我把问题的原因误认为是多处理问题。

关于python - 如何从多进程(子进程)获取django.db.connection.queries数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34784277/

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