psycopg2.DatabaseError:状态为 PGRES_TUPLES_OK 的错误,并且 Flask Celery 应用程序中的 libpq 错误没有消息

问题描述 投票:0回答:1

我偶尔会注意到使用 SQLAlchemy 的 Flask Celery 应用程序中出现此类错误。

当我检查数据库连接时,一切正常。该应用程序似乎以某种方式失去了与 PostgreSQL 数据库服务器的连接。

    [2021-02-08 00:01:00,124: ERROR/ForkPoolWorker-1] Task gbms.celery_service.create_recurring_tasks[04c258ab-9162-44ed-86ff-f90c4a214fd2] raised unexpected: DatabaseError('(psycopg2.DatabaseError) error with status PGRES_TUPLES_OK and no message from the libpq')
Traceback (most recent call last):
  File "/gbmsenv/lib64/python3.8/site-packages/sqlalchemy/engine/base.py", line 1276, in _execute_context
    self.dialect.do_execute(
  File "/gbmsenv/lib64/python3.8/site-packages/sqlalchemy/engine/default.py", line 593, in do_execute
    cursor.execute(statement, parameters)
psycopg2.DatabaseError: error with status PGRES_TUPLES_OK and no message from the libpq

The above exception was the direct cause of the following exception:

我应该采取哪些步骤来找出原因并解决问题?

python flask celery flask-sqlalchemy
1个回答
0
投票

i 使用 Gunicorn Workers 每 1000 个请求重新启动一次。所以每个worker都在内核级别运行,并为每个worker分配一个唯一的pid。因此,当工作程序在 1000 个请求后重新启动时,在重新启动之前,它会检查是否有任何后台任务正在运行,如果没有,则它将重新启动。所以我的问题是

如果他们检查后台任务那么为什么他关闭以前请求的数据库对象??

我的内存消耗问题已由gunicorn 修复,但我面临这个新问题!!!

有些错误

(psycopg2.DatabaseError) 错误,状态为 PGRES_TUPLES_OK 并且没有来自 libpq 的消息

(psycopg2.OperationalError) 服务器意外关闭连接 这可能意味着服务器异常终止 在处理请求之前或期间。

对此问题的任何建议(guvicorn 相关)

© www.soinside.com 2019 - 2024. All rights reserved.