>我正在使用 django-rest 应用程序中的芹菜运行一个定期任务,该应用程序从具有多个表的大型 Postgres 数据库中提取数据,任务启动良好并提取一些数据大约 50 分钟,然后失败并出现此错误
client_idle_timeout
server closed the connection unexpectedly, This probably means the server terminated abnormally before or while processing the request.
导致此问题的问题可能是什么,我该如何解决它?
这很可能意味着您的 PostgreSQL 对事务可以花费多长时间(在事务中空闲)或会话可以花费多长时间(会话超时)有限制。
这可能是由于处理数据库的典型错误方式(我甚至看到高级开发人员也这样做)而发生的 - 进程创建一个数据库会话,然后开始执行一些可能需要很长时间才能完成的业务逻辑,而数据库数据已被部分更新或插入。以这种方式编写的代码注定要失败,因为PostgreSQL强制执行超时。