gpt4 book ai didi

django - 通过 Django 设置事务\查询超时?

转载 作者:行者123 更新时间:2023-12-04 18:08:44 26 4
gpt4 key购买 nike

有没有办法在 django 中为 db 事务或通过 django 的 ORM 执行的 db 查询设置超时?

示例用例:
Heroku 将 django Web 请求限制为 30 秒,之后 Heroku 终止请求,不允许 django 优雅地回滚任何尚未返回的事务。这可能会使未完成的事务在 postgres 等数据库上保持打开状态。您可以在数据库中配置超时,但这也会限制非 Web 相关的查询,例如维护脚本分析等。在这种情况下,最好通过 django ( or via the middleware ) 设置超时。

最佳答案

是的,这是可能的。

对于 postgres 客户端,有一个名为 statement_timeout 的配置参数。 .好东西:它可以通过环境变量设置。

这意味着如果你设置 PGOPTIONS--statement-timeout=28s在此应用程序的 heroku 设置中,该语句将在 28 秒后失败。

请记住:此设置将用于所有 dyno 类型,而不仅仅是您的网络服务器。

如果你想解决这个问题,你可以将配置添加到你的 Procfile (以python为例):

web: PGOPTIONS=--statement-timeout=28s waitress-serve myapp.wsgi:application
worker: PGOPTIONS= worker.py

然后只有来自您的网络服务器的连接才会有此语句超时。

关于django - 通过 Django 设置事务\查询超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19963854/

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