1

だから、それが私がやろうとしていることです-実際にはかなり自明です:

  • X の「同時」プロセスを開始します (それぞれが異なる PHP スクリプトにバインドされます)。
  • それらのすべてがいつ終了したかを言うことができる

execさまざまなアプローチを見てきましたが、おそらくバックグラウンド プロセスを使用するつもりです。(これらの線に沿った何か)。

私が本当に理解できないことは、次のとおりです。

すべてのプロセスが終了したかどうかを確認する最も効率的な方法がどれかわかり ません(一般的な進行状況を監視できること。たとえば、Y のうち X が終了したことも必須です)

重要なのは時間効率であり、明らかに、不必要なサーバーの過負荷を引き起こさないことです (したがって、whileライブ s をチェックする「凍結した」ループpidは、たとえ間隔があっても、問題外だと思いますよね?)

どんな提案でも大歓迎です!


PS:私は当初、クライアント側から開始する非同期 Ajax リクエストでこのすべてをセットアップしましたが、現在、非 JavaScript の完全なサーバー側環境への移行を検討しています。ただし、並列処理の問題は残ります...

4

1 に答える 1

3

pcntl_fork および関連する関数を調査する必要があります。これにより、1 つのマスター プロセスで多数の子プロセスを形成し、子プロセスの終了ステータスを通知できます。

http://php.net/manual/en/function.pcntl-fork.php

于 2012-07-31T19:17:30.577 に答える