gpt4 book ai didi

mysql - 为什么 django 在 mysql 中留下锁?

转载 作者:可可西里 更新时间:2023-11-01 06:34:06 24 4
gpt4 key购买 nike

我有一个使用 MySQL 和 InnoDB 引擎进行存储的 Django 应用程序。出于某种原因,Django 有时会保留锁,即使在查询完成后也是如此。 (我可以通过 Innotop 看到它们)。

我在我的代码中做的唯一事务处理是我为我处理多表继承的一些 save() 方法指定了 django.db.transaction.commit_on_success。

如果我重新启动 Apache 服务器,锁定就会消失。

有人见过这样的东西吗?我可以编写一些会导致这种情况的反模式吗?

最佳答案

我成功完成此任务的唯一一次是在 Django 中设置与请求/ View 无关的“计划”任务。默认的自动提交事务处理系统仅在请求/响应对完成并发送回最终用户时才提交事务,因此创建在没有发送请求的情况下运行的 kron-esque 作业绕过了该机制。

否则一般很难让它无法释放锁。您确定没有运行时间非常长的代码块(可能依赖于超时的外部服务或类似的东西)来解决问题?

关于mysql - 为什么 django 在 mysql 中留下锁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3087035/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com