ホームページ  >  記事  >  PHPフレームワーク  >  swooleでワーカーを作成する方法

swooleでワーカーを作成する方法

尚
オリジナル
2020-01-13 13:30:522403ブラウズ

swooleでワーカーを作成する方法

swoole はマルチプロセス モデル フレームワークです。プロセス swoole アプリケーションが開始されると、合計 2 n m のプロセスが作成されます (n はワーカー プロセスの数、m はワーカー プロセスの数) TaskWorker プロセス数、1 マスター プロセスとマネージャー プロセスの関係は下図のとおりです。

swooleでワーカーを作成する方法

マスター プロセスはメイン プロセスであり、このプロセスによってManager プロセスや Reactor スレッドなどのワーク プロセス/スレッド。

Worker プロセスは Swoole の作業プロセスとして機能し、すべてのビジネス ロジック コードはこのプロセス上で実行されます。 Reactor スレッドはクライアントからデータを受け取ると、そのデータをパッケージ化し、パイプを通じてワーカー プロセスに送信します。

swoole のワーカー/タスク プロセスはすべてフォークされ、Manager プロセスによって管理されます。

子プロセスが終了すると、マネージャー プロセスは、ゾンビ プロセスになるのを避けるために子プロセスをリサイクルする責任があります。そして、新しいサブプロセスを作成します。

サーバーがシャットダウンされると、マネージャー プロセスはすべてのサブプロセスにシグナルを送信し、サブプロセスにサービスをシャットダウンするように通知します。

サーバーがリロードされると、マネージャー プロセスはサブプロセスを 1 つずつシャットダウン/再起動します。

fork():

プロセスに割り当てられたコード、データ、リソースを含むプロセス。 fork() 関数は、システム コールを通じて元のプロセスとほぼ同一のプロセスを作成します。つまり、2 つのプロセスはまったく同じことを実行できますが、初期パラメータまたは渡された変数が異なる場合、2 つのプロセスは別のこともできます。
プロセスが fork() 関数を呼び出した後、システムはまずデータやコードを保存するためのスペースなどのリソースを新しいプロセスに割り当てます。次に、元のプロセスの値と異なるいくつかの値を除いて、元のプロセスのすべての値を新しいプロセスにコピーします。それは自分自身のクローンを作成することに相当します。

推奨学習: swoole チュートリアル

以上がswooleでワーカーを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。