あなたはスレッドプールのようにそれを行うことができます。受信を処理するコマンドラインphpスクリプトを作成します。プロセスが停止した場合にプロセスを自動的に再起動するシェルスクリプトによって開始する必要があります。シェルスクリプトがすでに実行されている場合は、プロセスを開始しないでください($ pid.runningファイルなどを使用してください)。cronにこれらのいくつかを1〜10分ごとに実行させます。それは受信をうまく処理するはずです。
奇妙な理由でcronが別のサーバー上にない限り、cronにWebリクエストを起動させることはありません。
これを使用する別の方法は、データを作成するバックラウンドプロセスを持ち、Webユーザーがサイトを自然に閲覧するときにデータを消費することです。レポートジェネレータはこのように機能する可能性があります。全社的なレポートはすべてのユーザーが利用できますが、すべてのユーザーがこのデータベース/時間のかかるレポートを生成することは望ましくありません。したがって、キューを作成し、重複を削除するために一度に1つずつ処理します。すべてのユーザーは、準備ができたらレポートを表示できます。
ドキュメントによると、 zenddbが他のzend_dbクエリと同じ接続を使用しているようには見えません。しかしもちろん、見つけるための最良の方法は、簡単なテストを行うことです。
編集
cronの複数の行は同時実行用です。各行は、プールのワーカーを表します。私は明確ではありませんでした、あなたは識別子としてpidを望まない、あなたはそれをパラメータとして渡したいのです。
- /home/byron/run_queue.sh Process1
- /home/byron/run_queue.sh Process2
- /home/byron/run_queue.sh Process3
bashスクリプトは、$ process.runningファイルが終了した場合、それをチェックします。
そうでなければ:
- $process.runningファイルを作成します。
- phpプロセスを開始します。ブロック/終了するまで待ちます。
- $process.runningファイルを削除します。
これにより、phpスクリプトが停止しますが、プールがワーカーを失うことはありません。
キューが空の場合、phpスクリプトはすぐに終了し、cronのnex呼び出しによって再開されます。