think-orm高并发的情况下偶发性报错

m7yun

Packets out of order. Expected 4 received 1. Packet size=80
当高并发的情况下可能会报这个错误,百度了一下可能是多进程用了同一个数据库连接。请问有什么办法可以解决?

428 1 0
1个回答

walkor

是否用了mycat之类的mysql代理?去掉代理试下。
不要在start.php里直接初始化数据库连接,start.php里直接初始化连接属于在主进程初始化连接,子进程会继承连接导致数据混乱。

  • m7yun 18天前

    没用到代理,直接用的webman/think-orm那个依赖跑的,这个不知道是不是在start.php里面初始化连接的

  • m7yun 17天前

    大佬,看你2小时前更新了webman/think-orm,我这边更新后 php start.php start之后 维持心跳报错了
    vendor/webman/think-orm/src/ThinkOrm.php这个文件26行报下面的错误
    ReflectionException: Property instance does not exist

  • walkor 17天前

    执行 composer info 看下 topthink/think-orm 版本。

  • m7yun 17天前

    think-orm是v2.0.54 因为我还用到了think-cache think-cache引入了think-container think-container里面也有个think\Facade类 并且这个类没有定义instance属性 这种情况怎么办

  • m7yun 17天前

    感觉有点无限套娃了。。。

  • walkor 17天前

    你先回滚到之前的版本吧

  • m7yun 17天前

    OK 已经回滚了

🔝