【发布时间】:2016-03-23 23:39:03
【问题描述】:
您好,我有一个使用 Celery Flask SqlAlchemy 的设置,但我间歇性地收到此错误:
(psycopg2.DatabaseError) SSL error: decryption failed or bad record mac
我关注了这个帖子:
Celery + SQLAlchemy : DatabaseError: (DatabaseError) SSL error: decryption failed or bad record mac
还有一些,并添加了 prerun 和 postrun 方法:
@task_postrun.connect
def close_session(*args, **kwargs):
# Flask SQLAlchemy will automatically create new sessions for you from
# a scoped session factory, given that we are maintaining the same app
# context, this ensures tasks have a fresh session (e.g. session errors
# won't propagate across tasks)
d.session.remove()
@task_prerun.connect
def on_task_init(*args, **kwargs):
d.engine.dispose()
但我仍然看到此错误。有人解决了吗?
请注意,我在 AWS 上运行它(两台服务器访问同一个数据库)。数据库本身托管在它自己的服务器上(不是 RDS)。我相信运行的芹菜后台任务总数为 6(2+4)。 Flask 前端正在使用 gunicorn 运行。
我的相关主题: https://github.com/celery/celery/issues/3238#issuecomment-225975220
【问题讨论】:
-
你能找到解决办法吗?
-
没有,还没找到
-
我在 AWS 上使用 Celery、SQLAlchemy 和 PostgreSQL,没有这个问题。我能想到的唯一区别是我在 RDS 上有数据库。我认为您可以尝试暂时切换到 RDS,只是为了测试问题是否仍然存在。如果会随着 RDS 消失,那么您需要查看 PostgreSQL 设置。
-
嗨 Boris,你知道你是否在 Postgres 配置中启用了 SSL 吗?我相信只有在启用 SSL 时才会出现这个问题。
-
@BorisSerebrov 你能分享你的芹菜初始化代码吗?从我到目前为止所挖掘的内容来看,这取决于其中的 celery 和 sqlalchemy 是如何初始化的。
标签: python-2.7 sqlalchemy celery flask-sqlalchemy