ホームページ  >  記事  >  バックエンド開発  >  PHPサーバー上でマルチプロセッシングを実装するには何を使用しますか?

PHPサーバー上でマルチプロセッシングを実装するには何を使用しますか?

WBOY
WBOYオリジナル
2016-12-01 00:56:47857ブラウズ

PHP バックエンドは他の場所から大量のデータを要求し、それを配列の形式で提示する必要があります。単一のプロセスでは遅すぎるため、複数のプロセスを使用したいと考えています。
確認済み いくつかの情報から、pcntl_** シリーズの関数に気づきましたが、これらはコマンドラインでのみ実行でき、サーバー上では使用できないようです。
この要件を達成する方法はありますか。 ?

ぜひ教えてください!

返信内容:

PHP バックエンドは他の場所から大量のデータを要求し、それを配列の形式で提示する必要があります。単一のプロセスでは遅すぎるため、複数のプロセスを使用したいと考えています。
確認済み いくつかの情報から、pcntl_** シリーズの関数に気づきましたが、これらはコマンドラインでのみ実行でき、サーバー上では使用できないようです。
この要件を達成する方法はありますか。 ?

ぜひ教えてください!

必要なのは複数のプロセスではなく、メッセージキューです

Webサーバーはリクエストを受信した後、メッセージをメッセージキューにプッシュし、ブラウザの結果を直接返します(たとえば、処理中であることを示します)

メッセージキューを消費し、長時間実行し、メッセージキューからメッセージを取得して処理し、最後にステータスを処理完了に変更する別のスクリプトを作成します(タスクの概念がある場合)

このレベルでは、マルチプロセスまたはマルチスレッドが必要かどうかは、特定の状況によって異なります。マルチプロセスまたはマルチスレッドでは、(大量のリクエストが必要であるという事実から判断すると) IO 集中型の操作のみが改善されます。他の場所からのデータ) 一貫性があると考えられます)

満足していただくために: pcntl_fork 関数を見てください

php_swoole これは、pcntl よりも成熟しており、安定しています。また、メッセージキューと連携して処理した方が良いです

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