本文将给大家分享一个简单的swoole流程图
WorkerStart 的回调
$serv->on('WorkerStart',function ($serv,$worker_id){ echo "启动了一个Worker"; });
Worker进程的任务分配模式是?
worker进程数据包分配模式
dispatch_mode = 1 //1平均分配,2按FD取摸固定分配,3抢占式分配,默认为取模(dispatch=2)
抢占式分配,每次都是空闲的worker进程获得数据。很合适SOA/RPC类的内部服务框架
当选择为dispatch=3抢占模式时,worker进程内发生onConnect/onReceive/onClose/onTimer会将worker进程标记为忙,不再接受新的请求。reactor会将新请求投递给其他状态为闲的worker进程
如果希望每个连接的数据分配给固定的worker进程,dispatch_mode需要设置为2
$serv->on('receive', function ($serv, $fd, $from_id, $data) {//接收到来自客户端信息的回调 $serv->send($fd, 'Swoole: '.$data); $serv->tick(1000, function() use ($serv, $fd) { $serv->send($fd, $serv->worker_id); }); }); /*向客户端发送当前worker的ID,在设置为平均分配时,测试可以开启两个客户端,非常明显的就可以看出 是两个不同的worker进程发来的信息 $serv->send($fd, $serv->worker_id);*/
以上就是“swoole简单的流程图(Worker的分配)”的详细内容,想要获取更多swoole教程欢迎关注编程学习网
扫码二维码 获取免费视频学习资料
- 本文固定链接: http://phpxs.com/post/8141/
- 转载请注明:转载必须在正文中标注并保留原文链接
- 扫码: 扫上方二维码获取免费视频资料
查 看2022高级编程视频教程免费获取