在我们的开发环境中,我们开始探索celery 的用途。问题是当一个任务启动时,sqlalchemy通常很难连接到我们的amazon/awsrds示例。这往往发生在一段时间后,无论我尝试了什么设置,但很难说到底多久。我们的数据库是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
我尝试 Package 每个查询以重新连接,但也没有成功。注意,这段代码是从一个类似的主题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 ,现在它仍然随机退出,甚至在同一个函数流中的两个查询之间。在生产服务器上,软件现在几乎完全相同。
暂无答案!
目前还没有任何答案,快来回答吧!