Yur*_*kii 5 django postgresql transactions psycopg2 django-testing
有没有办法在基于 django 的代码中的两个线程之间共享相同的事务?
\n\n问题是我有 1.1 的 TestCase(那些将单个测试包装到事务中的测试用例),旨在测试在不同线程中运行的代码[一种异步测试]。因此,这些测试创建了一些旨在供第二个线程使用的数据。显然,由于该数据是在事务范围内创建的,因此它对第二个线程不可见。但由于这基本上应该与 PgSQL 具有相同的连接(应该吗?)我希望有一种方法可以共享此事务范围,以便我的第二个线程可以访问其中添加的数据?..
\n\n任何想法?
\n\n数据库是PgSQL 8.3,驱动程序是postgresql_psycopg2。Django \xe2\x80\x94 主干。
\n我想说那是不可能的。据我所知,每个线程都有自己的 PostgreSQL 会话,以便能够并发运行。鉴于 PostgreSQL 是一个MVCC数据库,一个线程将无法访问另一个线程的更改,直到事务被提交 \xe2\x80\x93 ,而在 Django 1.1 中则不会TestCase。
如果您需要测试并发运行的内容,我很确定您需要使用TransactionTestCase.
| 归档时间: |
|
| 查看次数: |
2188 次 |
| 最近记录: |