0

非常に長い間実行されるいくつかのphpコードがあります。

次のスキームを実現する必要があります。

  1. ユーザーが何らかのページに入る (ページ 1)
  2. このページは、バックグラウンドで大きな PHP スクリプトの実行を開始します (すべての変更がデータベースに書き込まれます)。
  3. 現在の実行ステータスを取得するために、N 秒ごとにクエリをデータベースに送信しました。

1000 人のユーザーが 1000 の php プロセスを作成するため、exec コマンドを使用したくありません。私には無理です...

4

3 に答える 3

1

ignore_client_abort()phps関数と組み合わせて、スクリプト内からローカル http サーバーへの http 要求を使用します。

そうすれば、負荷を http サーバーのワーカー プロセス内に保持し、自然な制限を設けて、リクエストのキューイングを無料で行うことができます。

于 2012-12-03T17:05:11.923 に答える
1

したがって、基本的には、キュー (データベースに保存される可能性があります) と、キューに入れられたアイテムを処理する cron によって実行されるコマンド ライン スクリプトが必要です。

明確化: 私の回答の何が不明確なのかはわかりませんが、これは質問によって課せられた 2 つの要件に準拠しています。

  1. クライアントはスクリプトを中止できません
  2. 1,000 クライアント間で 1 つのプロセスを共有する
于 2012-12-03T17:07:23.003 に答える
0

CLIを使用して複数の PHP スクリプトを実行できます

また

PHPでEasy Parallel Processingを試すことができます

于 2012-12-03T17:11:07.163 に答える