swoole
的分配worker
进程方式有很多 轮询 争抢 空闲 等等.
因为业务的需求, 我们的服务需要根据用户uid
分配 worker
进程做到用户操作排队.
dispatch_func
自定义分配worker
进程方法, 真实让我又爱又恨.
好处不多说 满足业务需求, 从此实现用户操作 单进程排队的效果.
坑也不少, 第一个踩的坑 空包处理 return -1
, 没想到结果非常惨 Error: Too many open files[24]
可以看下以前的文章 [Error: Too many open files[24]][1]
今天有一个坑 换了个业务 但也需要用 dispatch_func
心跳包 或 keepalive
两种检测连接方法都失效了....
原因还是 return
负数 我 return -100
仍然不给力 ....
改成随便一个worker
就 ok 了 棒棒哒~