问题如上,确实困扰了我很久的一个问题,这个问题很可能是由于开启的会话session不是复用的(可以考虑使用scoped_session来实现,这个我没有验证过),然后太多的session可能导致再次请求数据库时会发生拥堵,此时就需要将这些session产生的数据库连接回收掉,mysql默认的回收时间是8个小时,也就是28800秒,我这里设置为了60s然后问题解决
具体的代码就是在生成create_engine的时候进行添加:
self.engine = create_engine(f"mysql+pymysql://{user}:{password}@{host}:{port}/{database}?charset=utf8",pool_size=25,pool_recycle=60)