使用芹菜时,SQLAlchmey一直遭受数据库连接问题的困扰

时间:2018-07-06 04:12:34

标签: python mysql sqlalchemy celery

在我们的开发环境中,我们开始探索芹菜的用途。问题是启动任务时,SQLAlchemy通常很难连接到我们的Amazon / AWS RDS实例。无论我尝试了什么设置,这种情况都会在一段时间后发生,但是很难说多久。我们的数据库是AWS RDS上生产数据库的快照,具有所有相同的参数/设置。

错误包括...

OperationalError: (_mysql_exceptions.OperationalError) (2013, 'Lost connection to MySQL server during query')...(Background on this error at: http://sqlalche.me/e/e3q8)

...或...

OperationalErrorOperation : MySQL Connection not available.

我们的引擎...

engine = sa.create_engine(SA_ENGINE, echo=False, pool_recycle=90, pool_pre_ping=True)

(我尝试了pool_recycle的大量变体)

在数据库方面,我更改了以下参数(尽管有些是极端的,我已经尝试了各种变体)...

interactive_timeout = 28800
wait_timeout = 28800
max_heap_table_size = 32000000000

我尝试包装每个查询以重新连接,但这也不起作用。请注意,此代码取自有关类似主题的StackOverflow答案...

def db_execute(conn, query):
    try:
        result = conn.execute(query)
        print(result)
    except sa.exc.OperationalError:  # may need more exceptions here (or trap all)
        conn = engine.connect()  # replace your connection
        result = conn.execute(query)  # and retry
    return result

这是一个为期三天的自转,我被困住了...我希望外面的人有一些见识或指导吗?

更新

我已经从等式中完全删除了celery,但是现在它仍然是随机退出的,甚至是在相同函数流中的两次查询之间。在生产服务器上,该软件现在几乎完全相同。

0 个答案:

没有答案