如果丢失,强制django重新打开数据库连接

时间:2019-03-10 19:22:41

标签: python django postgresql

在我的Python-Django Web应用程序中,有时数据库会断开连接(与我的测试环境有关的问题,不是那么稳定...),而我的Web应用程序却给我这个错误:

Traceback (most recent call last):
  File "main.py", line 33, in <module>
    class beta_Tester(Employee, Developer):
TypeError: Cannot create a consistent method resolution
order (MRO) for bases Employee, Developer

现在,我如何告诉django重试打开连接并继续? django似乎仍然停留在这一点...

谢谢。

1 个答案:

答案 0 :(得分:0)

没有办法告诉Django应该在连接错误时重试。相反,它旨在仅在该请求上失败。来自the documentation

  

如果在处理请求时发生任何数据库错误,则Django将检查连接是否仍然有效,如果没有,则将其关闭。因此,数据库错误最多影响一个请求。如果连接变得不可用,则下一个请求将获得新的连接。

但是,如果您遵循文档中的以下建议,这应该不是问题:

  

如果您的数据库在一段时间后终止了空闲连接,则应将CONN_MAX_AGE设置为较低的值,以便Django不会尝试使用已被数据库服务器终止的连接。