gpt4 book ai didi

django - 在 python/django 中的线程之间共享事务范围? (PostgreSQL)

转载 作者:行者123 更新时间:2023-11-29 11:34:45 25 4
gpt4 key购买 nike

有什么方法可以在基于 django 的代码中的两个线程之间共享同一个事务?

问题是我有 1.1 的 TestCase(将单个测试包装到事务中的那些)旨在测试在不同线程中运行的代码 [一种异步测试]。所以这些测试创建了一些数据,供第二个线程使用。显然,由于此数据是在事务范围内创建的,因此第二个线程不可见。但是因为这基本上应该是与 PgSQL 的相同连接(应该吗?)我希望有一种方法可以共享这个事务范围,以便我的第二个线程可以访问添加到其中的数据?..

有什么想法吗?

数据库是 PgSQL 8.3,驱动是 postgresql_psycopg2。 Django — 主干。

最佳答案

我会说那是不可能的。据我所知,每个线程都有自己的 PostgreSQL session ,以便能够并发运行。鉴于 PostgreSQL 是一个 MVCC数据库,一个线程将无法访问另一个线程的更改,直到事务被提交——在 Django 1.1 TestCase 的情况下不会这样。

如果您需要测试同时运行的东西,我很确定您需要使用 TransactionTestCase .

关于django - 在 python/django 中的线程之间共享事务范围? (PostgreSQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/989629/

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