3

PHP でプロセス間 (またはスレッド化) 通信を実現する方法はありますが、すべてを非同期で実行する方法はありますか?

4 つのプロセスを作成してすぐに終了するスクリプトが必要です。4 つのプロセスのそれぞれがアクションを実行する必要があり、終了すると、終了したことを誰か (おそらく別のスクリプト?) に通知する必要があります。したがって、4 つのスクリプトがすべて完了したことを知りたいので、ステータスを取得から完了に更新できます。

これは可能ですか?できればPHPを再コンパイルせずに(これはスレッドを操作するために必要だと読んでいます)、必要に応じてそうします。

4

3 に答える 3

4

他の人が述べたように、Gearman は 1 つのソリューションです。もう 1 つは、私が実際に好む方法で、ジョブ スタックにジョブを追加する非同期メッセージ キューを作成する方法です。

私はそのような目的でZeroMQを使用しています。Photonと呼ばれる非同期タスク用に ZeroMQ を実装する PHP フレームワークが利用可能です。Photon のソースを参照すると、非同期ジョブ キューを使用することにした場合に備えて、その実装方法についていくつかのアイデアが得られるかもしれません。

于 2012-01-03T11:41:58.850 に答える
2

ギアマンはあなたが探しているものを提供するかもしれません。

于 2012-01-03T11:32:50.843 に答える
1

ジョブ キューイング システムを使用するか、CRON に貼り付けることができます。PHP はいくつかのジョブ キューをサポートしていますが、私は過去にGearmanを使用したことがあり、Linuxatコマンドのカスタム ラッパーを作成しました。これらは両方とも、PHP を再コンパイルせずに「スレッドのような」動作を実現するために使用できます。

于 2012-01-03T11:35:54.143 に答える