ホームページ  >  記事  >  PHPフレームワーク  >  swoole のタスクはスレッドですか、それともプロセスですか?

swoole のタスクはスレッドですか、それともプロセスですか?

(*-*)浩
(*-*)浩オリジナル
2019-12-06 13:28:542259ブラウズ

swoole のタスクはスレッドですか、それともプロセスですか?

swoole には、マスター プロセスとマネージャー管理プロセスという 2 つの主要なプロセスがあることがわかっています。 (推奨学習: swoole ビデオ チュートリアル )

マスター メイン プロセスには、メイン リアクター スレッドと複数のリアクター スレッドが存在します。主な機能は、TCP 接続を維持し、ネットワーク IO を処理することです。データを送受信します。

マネージャーはプロセスを管理し、その役割はワーカーとタスクのプロセスをフォークして管理することです。

ワーカープロセスの機能は、リアクタースレッドから渡されたデータを受け取り、データを処理し、処理結果をリアクタースレッドに返すことです。

タスク プロセスの役割は、比較的時間のかかるタスクを処理することです。タスク プロセスはワーカー プロセスから独立しており、クライアント リクエストのワーカー プロセスの処理には影響しません。

1. タスク プロセスの適用シナリオ:

1. 100 万人のユーザーにイベント メールを送信する必要がある特定のイベントなど、比較的時間のかかる大量メール送信。

2. 特定の大きな V の更新をプッシュします。たとえば、大きな V が新しいメッセージを投稿した場合、ファンは時間内に更新を取得する必要があります。

2. ワーカーとタスクの関係:

1. ワーカー プロセスは task() を呼び出すことでタスクを配信でき、タスク プロセスは onTask イベントを通じて応答します。 . 提出されたタスク。

2. タスク プロセスでは、直接返すか、finish() を呼び出すことで、タスクが完了したことをワーカー プロセスに伝えることができます。ワーカー プロセスでは、onFinish イベントを通じてタスクの完了に応答できます。

3. タスクを使用するための前提条件:

1. Server で task_worker_num の数を設定します。

2. サーバーの onTask および onFinish イベント コールバック関数を設定します。

以上がswoole のタスクはスレッドですか、それともプロセスですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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