当使用celery时,SQLAlchmey总是受到数据库连接问题的困扰

2024-07-08 10:02:46 发布

您现在位置:Python中文网/ 问答频道 /正文

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

错误包括。。。在

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.

我们的引擎。。。在

^{pr2}$

(我尝试过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

这已经是一个三天的车轮旋转和我卡住了。。。我希望外面有人能有一些见识或指导?在

更新

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


Tags: 数据库execute参数环境sqlalchemymysqltimeoutresult

热门问题