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