编程学习网 > PHP技术 > swoole > swoole简单的流程图(Worker的分配)
2021
06-29

swoole简单的流程图(Worker的分配)

本文将给大家分享一个简单的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);*/

180609_NPoE_3529405.png

以上就是“swoole简单的流程图(Worker的分配)”的详细内容,想要获取更多swoole教程欢迎关注编程学习网

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取