django 里面的原生的 sql 查询,会一直占用数据库连接吗

2022-07-01 16:50:49 +08:00
 longmeier90

最近数据库连接一直报警。排查了一下是有一个 django 项目占用大量的数据库连接。按照用户量不太可能,有一个问题是这个 django 项目都是用原生 SQL 查询没有用 ORM 。

from django.db import connection

with connection.cursor() as cursor:

    cursor.execute(sql, params=params_dict)
    result = dictfetchall(cursor)

return result

这种写法有问题吗?

2411 次点击
所在节点    Django
6 条回复
pepesii
2022-07-01 18:27:25 +08:00
讲道理,没问题;但是看了下代码,close 这儿有个 issue ,有没有可能和这个有关系呢
https://github.com/django/django/blob/0dd29209091280ccf34e07c9468746c396b7778e/django/db/backends/utils.py#L36
longmeier90
2022-07-04 15:26:39 +08:00
@pepesii 还有一个问题,我最近 django 项目用的 celery 有一个问题,有十几个队列但是起了 6 个 worker ,但是每隔一段时间又会起 6 个 worker 。不知道这是什么情况
pepesii
2022-07-06 09:55:51 +08:00
怎么部署的,应该和你的进程管理工具有关哦
longmeier90
2022-07-08 13:40:45 +08:00
@pepesii supervisor+gunicon+wsgi
pepesii
2022-07-08 16:46:19 +08:00
估计是 supervisor 导致的吧,你看看进程树
longmeier90
2022-07-11 11:25:53 +08:00
@pepesii 应该不会是,应该我好几个 django 项目都是用 supervisor 部署的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/863475

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX