首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何处理Django-PostgreSQL锁

如何处理Django-PostgreSQL锁
EN

Stack Overflow用户
提问于 2014-10-15 10:36:05
回答 1查看 1.2K关注 0票数 2

对于postgresql后端的Django项目,我有个问题。

我知道在“网络交易”中有一些悬而未决的问题。每次进行选择时,将在postgresql中创建一个新锁。这个锁在web交互(请求-进程-响应)中很好。

问题似乎是,我在芹菜整合方面遇到了一些麻烦。我有一些任务需要很长时间才能完成,它们如下所示:

代码语言:javascript
复制
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锁表输出

代码语言:javascript
复制
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)

提前谢谢你,

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-16 07:40:24

这似乎是Django -驱动程序行为的一部分,而没有显式设置自动提交。使用autocommit = True,所有查询都在其计算时开始和结束。

我知道在查询+更新方面不安全,但大多数情况下,查询只是.查询

干杯

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26380412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档