Django mysql 连接过多

2024-02-20

我将 Django 与 mysql 一起使用,并遇到连接过多的问题。

我从命令行运行 python 脚本,但与 Django 模型集成以检查数据库中的数据。该脚本每 30 秒运行一次,我使用线程来控制它。 My_function 是检查数据库状态的函数。

while True: 
    now = time.time() 
    if now < next: 
        time.sleep(next - now) 
        t = Thread(target=my_function,)
        t.start()# start a thread

    next += interval

问题是当我监控 mysql 服务器时。一直有大约 10 个连接,并且所有连接都在休眠。我只是不明白为什么。有 2 个活动的 python 线程不断运行,所有其他线程在完成后都会终止。为什么mysql连接数是10个? 有人可以帮助我吗?非常感谢!

更新1: 现在放上mysql进程列表的截图。连接均处于睡眠模式并且不执行任何操作,并且创建连接的线程已终止。这真的很奇怪。

+------+------+-----------------+----------+---------+-------+-------+------------------+
| Id   | User | Host            | db       | Command | Time  | State | Info             |
+------+------+-----------------+----------+---------+-------+-------+------------------+
|  411 | root | localhost:47347 | NULL     | Sleep   |     2 |       | NULL             |
|  412 | root | localhost:47350 | NULL     | Sleep   |     3 |       | NULL             |
|  479 | root | localhost       | NULL     | Sleep   | 27164 |       | NULL             |
|  918 | root | localhost       | EZ_Green | Sleep   | 14006 |       | NULL             |
|  953 | root | localhost       | EZ_Green | Sleep   | 12956 |       | NULL             |
|  989 | root | localhost       | EZ_Green | Sleep   | 11874 |       | NULL             |
| 1025 | root | localhost       | EZ_Green | Sleep   | 10796 |       | NULL             |
| 1061 | root | localhost       | EZ_Green | Sleep   |  9716 |       | NULL             |
| 1097 | root | localhost       | EZ_Green | Sleep   |  8636 |       | NULL             |
| 1132 | root | localhost       | EZ_Green | Sleep   |  7586 |       | NULL             |
| 1168 | root | localhost       | EZ_Green | Sleep   |  6506 |       | NULL             |
| 1204 | root | localhost       | EZ_Green | Sleep   |  5426 |       | NULL             |
| 1240 | root | localhost       | EZ_Green | Sleep   |  4346 |       | NULL             |
| 1276 | root | localhost       | EZ_Green | Sleep   |  3266 |       | NULL             |
| 1312 | root | localhost       | EZ_Green | Sleep   |  2186 |       | NULL             |
| 1348 | root | localhost       | EZ_Green | Sleep   |  1106 |       | NULL             |
| 1384 | root | localhost       | EZ_Green | Sleep   |    26 |       | NULL             |
| 1385 | root | localhost       | NULL     | Query   |     0 | NULL  | show processlist |
+------+------+-----------------+----------+---------+-------+-------+------------------+

正如尘尘所说,

每个使用 Django ORM 的线程都会创建一个新的数据库连接。 并且 Django 不会自动管理由您自己的线程创建的连接。 所以你应该管理它。

您可以在每个线程退出之前简单地执行此操作:

from django.db import connection

# your work thread method 

def my_function():
    # do something...
    # close the db connection explicitly

    connection.close()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django mysql 连接过多 的相关文章

随机推荐

  • 以编程方式更改布局的前景色

    我想更改线性布局的前景色 这是我的代码 layout setForeground new ColorDrawable getResources getColor R color svbackclr 但是这个调用需要最低 api 级别 23
  • SQL 关键字“ISABOUT”[已弃用?] 应该替换为什么?

    在 MS SQL 全文搜索中 我在查询中使用 ISABOUT 例如 这应该返回前 10 名ProductIDs PK 与RANK领域在ProductDetails Table SELECT FROM CONTAINSTABLE Produc
  • 连接浏览器和广告商而不在多点连接中显示警报消息

    目前我正在探索多点连接框架 我的应用程序广告商和浏览器中有 2 个选项 因此 当用户在一台设备上启动浏览器 而在另一台设备上启动广告商时 他们应该能够找到彼此 当该设备出现在浏览器中并且用户点击它时 将向拥有广告设备的用户显示警报 允许他们
  • 角度测试台覆盖模块不工作

    当对测试夹具使用以下配置时 我收到关于找不到标签的抱怨 替换为MockSelectionToolComponent直接在AppModule工作正常 所以一定是别的东西 Add the imported module to the impor
  • MySQL服务器消失了

    我在 MySql 服务器上执行此查询 它给出了 MySQL 服务器已消失 错误 在下面的查询中 我的两个表都有超过 1000000 行 SELECT a tab 11 10 url as url a tab 11 10 c5 as t1 a
  • 如何比较两个雄辩的集合并从另一个集合中删除其中的内容?

    我有所有门的集合 以及当前用户有权访问的门的集合 如何比较两者并从所有门集合中删除用户已有权访问的门 doors Door orderBy name asc gt get users doors user gt doors 这是两个集合 U
  • 删除或禁用 RAP/RCP EditorPart 上显示的“X”关闭按钮

    我正在开发一个显示 ViewPart 和 EditorPart 的 RAP 应用程序 我试图找到一种方法来防止 所有 编辑器部分关闭 有没有办法删除或禁用 编辑器部分显示的 X 关闭按钮 你可以这样做 我写的大致相同 例如 http wik
  • 如何启用即席分布式查询

    当我运行查询时OPENROWSET在 SQL Server 2000 中它可以工作 但 SQL Server 2008 中的相同查询会生成以下错误 SQL Server 阻止了对组件 临时分布式查询 的语句 OpenRowset OpenD
  • 动态 Telerik RadOutlookBar 标题与 ItemTemplate 出现错误

    我正在尝试以 MVVM 方式使用 Telerik RadControls 但遇到了一些奇怪的问题 RadOutlookBar 背后的 Viewmodel 有一个 ViewModel 集合 每个 ViewModel 都有一个 Title 字符
  • 如何播放本地文件中的音频?

    我想播放下载的本地音频文件 但它不播放 class AVPlayerService static let instance AVPlayerService private var audioPlayer AVPlayer public we
  • 是否有 CGPath 的替代方案可以计算给定位置路径上的点?

    对于动画计时算法 我需要提供一条路径作为曲线 可能是两端都有控制点的贝塞尔曲线 问题是似乎不可能计算 CGPath 上的点 因为 CGPathRef 是不透明的 Apple 也没有提供计算路径上的点的机制 是否有一个库或实用程序类可以计算贝
  • 招摇错误:schemaIds 冲突:检测到类型 A 和 B 的重复 schemaIds

    使用Web API并使用swashbuckle生成swagger文档 我在两个不同的命名空间中定义了两个具有相同名称的不同类 当我在浏览器中打开 swagger 页面时 它显示 schemaId 冲突 检测到类型 A 和 B 的 schem
  • React.js:非 CSS 动画

    反应文档 http facebook github io react docs 没有任何关于处理非 CSS 过渡的动画 例如滚动位置和 SVG 属性的动画 至于 CSS 过渡 有一个附加组件 http facebook github io
  • 如果不断增加访问内存超过 malloc() 分配的大小,linux glibc 中会发生什么[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 似乎评论 答案只是停留在 C 标准描述上 让我们更深入地讨论具体的实现 我在其他讨论中看到以下代码 struct size t x char
  • 如何设置newAPIHadoopFile的分区数量?

    老人 SparkContext hadoopFile需要一个minPartitions参数 这是分区数量的提示 def hadoopFile K V path String inputFormatClass Class lt InputFo
  • 使用按钮检查 html 复选框

    我正在努力在 Google 上的任何地方寻找解决方案 也许我搜索错误 但我想我会来询问 StackOverflow 上永远值得信赖的成员 我想使用 html 按钮来选中 html 复选框 我不想使用该复选框纯粹是出于可访问性的原因 因为我正
  • 使用 Google API“写入”Google 电子表格时出错

    使用的代码 var values value1 value2 value3 var body values values gapi client sheets spreadsheets values update spreadsheetId
  • 三列 100% 高度 css 布局

    我真的很纠结这个布局的CSS 这是我的 html 代码 div div menu div div div div sidebar div div 我想要左 中 右三列 宽度分别为父级宽度的 25 60 和 15 并且全部扩展至父级 主列 的
  • Java:打破jtable中的焦点循环

    在我的 JTable 中 我想像在 Excel 中一样编辑所有相关单元格 我实现了 ENTER 停止编辑单元格并将焦点转移到下一个单元格 但是 当我在最后一个单元格中按 ENTER 时 焦点循环使我跳到第一个单元格 但我想继续在表之外并将焦
  • Django mysql 连接过多

    我将 Django 与 mysql 一起使用 并遇到连接过多的问题 我从命令行运行 python 脚本 但与 Django 模型集成以检查数据库中的数据 该脚本每 30 秒运行一次 我使用线程来控制它 My function 是检查数据库状