最近数据库连接一直报警。排查了一下是有一个 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
这种写法有问题吗?
1
pepesii 2022-07-01 18:27:25 +08:00
讲道理,没问题;但是看了下代码,close 这儿有个 issue ,有没有可能和这个有关系呢
https://github.com/django/django/blob/0dd29209091280ccf34e07c9468746c396b7778e/django/db/backends/utils.py#L36 |
2
longmeier90 OP @pepesii 还有一个问题,我最近 django 项目用的 celery 有一个问题,有十几个队列但是起了 6 个 worker ,但是每隔一段时间又会起 6 个 worker 。不知道这是什么情况
|
3
pepesii 2022-07-06 09:55:51 +08:00
怎么部署的,应该和你的进程管理工具有关哦
|
4
longmeier90 OP @pepesii supervisor+gunicon+wsgi
|
5
pepesii 2022-07-08 16:46:19 +08:00
估计是 supervisor 导致的吧,你看看进程树
|
6
longmeier90 OP @pepesii 应该不会是,应该我好几个 django 项目都是用 supervisor 部署的。
|