4

有没有办法在基于 django 的代码中的两个线程之间共享相同的事务?

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

任何的想法?

数据库是 PgSQL 8.3,驱动程序是 postgresql_psycopg2。Django——后备箱。

4

1 回答 1

4

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

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

于 2009-06-13T05:55:35.847 回答