我有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进行的所有操作都指的是简单的解决方案:“更新所有内容”,但我已经做到了,项目中每个软件包都有最新版本,并且仍然存在此错误。
对于短期任务(即使是具有不同参数的相同任务),一切正常。
我也尝试过调整数据库连接超时,但是没有运气:/
答案 0 :(得分:0)
您尝试过this?
我遇到了同样的问题。目前,作为一种解决方法,必须创建包装器 连接对象以及使用它们的方法来挂钩它们。在cursor()方法中必须做一个
SELECT 1
“ ping”检查并在需要时重新连接以返回有效的工作光标。