栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Django多进程中的查询错乱问题以及mysql gone away问题

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Django多进程中的查询错乱问题以及mysql gone away问题

  • Django多进程中的查询错乱问题
    因为业务需要,写了一个多进程程序,但是发现查询结果错乱,比如在同一个进程里输出
    Asset.object.get(ip=1.1.1.1).ip
    发现输出的并不是1.1.1.1

    初步感觉是django底层用的musql_db这个库是进程不安全的,也就是不支持多进程操作,所以这种情况最好用多线程

  • 关于mysql gone away的问题

    一开始我以为是connections.close_all()函数导致的,如果在这句话前面查询出了一个对象,又执行这个关闭数据库链接的操作,然后再用这个对象执行一些修改或者需要联网的多表级联的操作会报错,其实不是的。在每一次需要联网操作的时候,如果发现没有这个链接,他会自动重新链接,不会报错

    那什么情况下会报gone away这个错误呢?

    子进程会fork父进程中的链接,但是这两个进程的计时不一样,mysql db中额外有一个计时器模块,来控制这些链接的终端与否,因为时间上对不上了所以会报错。(有待考证)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/313465.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号