对于postgresql后端的Django项目,我有个问题。
我知道在“网络交易”中有一些悬而未决的问题。每次进行选择时,将在postgresql中创建一个新锁。这个锁在web交互(请求-进程-响应)中很好。
问题似乎是,我在芹菜整合方面遇到了一些麻烦。我有一些任务需要很长时间才能完成,它们如下所示:
l1. instances = mymodels.MyModel.objects.all()
l2. for instance in instances:
l3. do something with that instance (not update, just performing
l4. some operations from instance fields)只有当任务结束时,锁才会释放。生成的锁是否在"l1“之后释放?
我的postgres锁表输出
SELECT locktype, relation::regclass, mode, transactionid AS tid,
virtualtransaction AS vtid, pid, granted
FROM pg_catalog.pg_locks l LEFT JOIN pg_catalog.pg_database db
ON db.oid = l.database WHERE (db.datname = 'sandbox' OR db.datname IS NULL)
AND NOT pid = pg_backend_pid();
locktype | relation | mode | tid | vtid | pid | granted
------------+----------+---------------+-----+-------+-------+---------
virtualxid | | ExclusiveLock | | 3/427 | 47715 | t
(1 row)提前谢谢你,
发布于 2014-10-16 07:40:24
这似乎是Django -驱动程序行为的一部分,而没有显式设置自动提交。使用autocommit = True,所有查询都在其计算时开始和结束。
我知道在查询+更新方面不安全,但大多数情况下,查询只是.查询
干杯
https://stackoverflow.com/questions/26380412
复制相似问题