zoukankan      html  css  js  c++  java
  • django中使用mysql偶尔会出现数据库连接丢失的情况

    问题

    我们在进行多线程操作连接数据库的时候,通常会挂起一个mysql连接,如果客户端使用一个连接查询多次数据库,如果连续查询则没有问题,如果查询几次后停顿超过wait_timeout后再次查询就会出现数据库连接丢失,报错;

    解决:

    调用django.db.close_old_connections()后再次查询就没有错误了。 那么我们要避免此错误就要执行每个数据库查询前调用
    1. 一般情况不会出现此类问题,因为一个请求中不间断进行数据库查询,无需每个请求调用此方法,杞人忧天。
    2. 有时候一个请求中数据量较大,会查询数据库后进行一段时间其他(不涉及数据库)处理,比如先查询一些数据,然后将数据处理、生成excel、保存文件并生成url。已知此过长需要非常长时间,那么最终url保存数据库就最好先调用django.db.close_old_connections()防止连接丢失

    所以我们在挂起一个多线程的时候进行数据库操作就要注意这个问题,防止连接丢失再去查询数据库就会使程序出错。

    这样查询前执行django.db.close_old_connections()就能避免错误了;

    参考:https://my.oschina.net/watcher/blog/2994509

  • 相关阅读:
    Liunx服务器部署MySQL
    TCP/IP协议与Http、RPC和Socket
    InfluxDB简介
    nodeJS中的包
    什么是Solr,它能为我们解决什么问题,怎么用?
    tp基础补充
    用户流程
    已有模板与tp框架的结合 (前台)
    tp模板基础
    Smarty小结提纲
  • 原文地址:https://www.cnblogs.com/JahanGu/p/14236891.html
Copyright © 2011-2022 走看看