[问题解决]flask Packet sequence number wrong - got 7 expected 2 sqlalchemy.exc.InvalidRequestError) Can't reconnect until invalid transaction is rolled back


用的是flask-admin定义管理员界面 该错误困扰了几天,模拟出来也不容易,首先得不断的点,一个线程没结束就发起另外线程,先出现 Packet sequence number wrong - got 7 expected 2 报错;再刷新出现connect until invalid transaction is rolled back报错而后持续该错误,网上搜了很多,加try cat处理,最后想想既然事务没结束,先来个结束,操作完再结束一下。

  1. 先根据持续报错,查看自己代码的报错位置
  2. 一般位置就是一个查询如下
    userinfo = session.query(User).get(user_id)
    
  3. 将该代码优化为前后都提交一次
    session.commit()
    userinfo = session.query(User).get(user_id)
    userinfo.status = 'COMPLETE'
    session.commit()
    
  4. 这时候频繁点击时出现问题是一次性的,即刷新后问题就消失了,暂时定义为操作频繁导致的线程错误,参考这篇重新定义下500页面三秒自动刷新即可