尝试将内容保存到数据库后长时间运行的任务中“服务器意外关闭了连接”

时间:2019-02-15 23:10:54

标签: python django celery

我有django应用程序和芹菜工人。

一项芹菜任务非常艰巨,可以运行15分钟以上。完成主要计算后,我尝试将结果保存到db时出现错误:psycopg2.OperationalError: server closed the connection unexpectedly

@celery_app.task
def task(param):
  Model1.objects.create(...)
  huge_calculations(param)  # may run for over 15 minutes
  Model2.objects.create(...)  # <- error here

我设法对Google进行的所有操作都指的是简单的解决方案:“更新所有内容”,但我已经做到了,项目中每个软件包都有最新版本,并且仍然存在此错误。

对于短期任务(即使是具有不同参数的相同任务),一切正常。

我也尝试过调整数据库连接超时,但是没有运气:/

1 个答案:

答案 0 :(得分:0)

您尝试过this?

  

我遇到了同样的问题。目前,作为一种解决方法,必须创建包装器   连接对象以及使用它们的方法来挂钩它们。在cursor()方法中必须做一个   SELECT 1“ ping”检查并在需要时重新连接以返回有效的工作光标。