celery在prefork模式下应当如何处理数据库链接(psycopg2)?

问题描述

celery使用prefork模式(4进程),和psycopg2搭配使用,每次启动可以成功完成一个celery任务,在进行第二个任务时就会出现InterfaceError: cursor already closed,请问应该如何处理。

自己尝试过哪些方法

psycopg2文档中看到,这个库不应在forked process中使用。所以有点疑惑,是因为celery的prefork模式所以导致了问题的出现吗?那么我应当如何处理比较合适?是否需要在每个celery任务中新建一个数据库链接,做完了再关掉?

阅读 2.6k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题