当前位置: 代码迷 >> 综合 >> swoole:reactor, worker, taskworker之间的关系及作用空间
  详细解决方案

swoole:reactor, worker, taskworker之间的关系及作用空间

热度:2   发布时间:2023-12-09 11:32:47.0

刚开始接触swoole的同学可能不太好理解 reactor, worker, taskworker之间的额关系预计作用空间。我在这里以下面的例子来做说明。

对照swoole结构图:https://blog.csdn.net/raoxiaoya/article/details/100176783

1、reactor是管理tcp连接的,并向worker进程投递请求,投递方式根据 dispatch_mode 配置。
2、worker进程可以自己处理任务,也可以投递给taskworker进程来做。

onConnet:在worker进程中回调
onReceive:在worker进程中回调
onTask:在task_worker进程内被调用
onFinish:在worker进程中回调
onWorkerStart:Worker进程/Task进程启动时发生

$server->on('connect', function($server, $fd){echo 'connect successful ...'.PHP_EOL;
});$server->on('receive', function($server, $fd, $reactorId, $data){// 投递task任务$server->task($data);// 返回客户端信息$server->send($fd, "发送成功".PHP_EOL);
});// 接收到task任务
$server->on('task', function($server, $task_id, $worker_Id, $data){// 执行完通知Worker进程$server->finish($data);
});// 接收来自task进程的通知
$server->on('finish', function($server, $task_id, $data){});
  相关解决方案