ホームページ >バックエンド開発 >PHPチュートリアル >[PHP]swoole_server の複数のプロセス間の分業
[PHP]swoole_server进程の分工
要約: Swoole は、PHP 言語の高性能ネットワーク通信フレームワークであり、PHP 言語の非同期マルチスレッド サーバー、非同期 TCP/UDP ネットワーク クライアント、非同期 MySQL、データベース接続プール、AsyncTask、メッセージ キュー、ミリ秒タイマー、非同期ファイルの読み取りと書き込み、非同期 DNS クエリ。強力な機能は、明確な分業を伴う複数のプロセスによって実現されます。ここでは、初心者が Swoole フレームワークをより早く理解できるように、いくつかのプロセスの分業について詳しく紹介します。 Pブログ:http://www.cnblogs.com/jhzhu
<span>$serv = new swoole_server("127.0.0.1", 9501);</span><span>$serv->set(array(</span><span> 'worker_num' => 8, //工作进程数量</span><span> 'daemonize' => true, //是否作为守护进程</span><span>));</span><span>$serv->on('connect', function ($serv, $fd){</span><span> echo "Client:Connect.\n";</span><span>});</span><span>$serv->on('receive', function ($serv, $fd, $from_id, $data) {</span><span> $serv->send($fd, 'Swoole: '.$data);</span><span> $serv->close($fd);</span><span>});</span><span>$serv->on('close', function ($serv, $fd) {</span><span> echo "Client: Close.\n";</span><span>});</span><span>$serv->start();</span>
<span>$client = new swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_ASYNC);</span><span>//设置事件回调函数</span><span>$client->on("connect", function($cli) {</span><span> $cli->send("hello world\n");</span><span>});</span><span>$client->on("receive", function($cli, $data){</span><span> echo "Received: ".$data."\n";</span><span>});</span><span>$client->on("error", function($cli){</span><span> echo "Connect failed\n";</span><span>});</span><span>$client->on("close", function($cli){</span><span> echo "Connection close\n";</span><span>});</span><span>//发起网络连接</span><span>$client->connect('127.0.0.1', 9501, 0.5);</span>
マスタープロセスマスタープロセスは主に、Swooleフレームワークメカニズムの動作を確認するために使用されます。いくつかの機能スレッドが作成されます:メインプロセス分析
swoole内のWorker/Taskプロセスは全てForkされてManagerプロセスによって管理されます。Managerプロセス
onWorkerStart
在task进程中也会被调用。当$worker_id >= $serv->setting['worker_num']
ワーカープロセス
タスクプロセス
swoole_server->task/taskwaitメソッドを通じてワーカープロセスから配信されたタスクを受け取りますタスクを処理し、結果データをワーカープロセスに返します