Есть ли способ разделить одну транзакцию между двумя потоками в коде на основе django?Общий объем транзакций между потоками в python/django? (PostgreSQL)
Проблема заключается в том, что у меня есть TestCase 1.1 (те, которые переносят отдельные тесты в транзакции), которые предназначены для тестирования кода, который выполняется в другом потоке [своего рода асинхронное тестирование]. Таким образом, эти тесты создают некоторые данные, которые предназначены для использования этим вторым потоком. Очевидно, что поскольку эти данные создаются в пределах транзакции, он не отображается во втором потоке. Но так как это должно в основном быть тем же самым соединением с PgSQL (должно ли это?), Я надеюсь, что есть способ поделиться этой областью транзакций, чтобы мой второй поток мог получить доступ к добавленным в него данным? ..
Любая идея?
База данных PgSQL 8.3, драйвер - postgresql_psycopg2. Django - багажник.
TransactionTestCase убивает меня - по какой-либо причине TRUNCATE принимает * forever * для завершения ... –
Вы проверили, был ли второй поток остановлен до окончания теста? Это может привести к тому, что усечка будет выполняться намного медленнее, поскольку на MVCC PostgreSQL необходимо сохранить копию усеченных данных. – mikl
hm, это интересно .. вся идея заключалась в том, чтобы не останавливать фоновый поток на протяжении всей жизни тестов. в этом случае я мог бы просто рассмотреть запуск и остановку 2-го потока в каждом setUp и tearDown, соответственно. –