23

クライアントから (ポスト経由で) 送信されたデータをキューに配置し、サーバー上の php スクリプトが最初にキューが空かどうかをチェックするようにします。キューが空でない場合、スクリプトはキュー内のすべてのデータを 1 つずつ処理します。

4

6 に答える 6

9

Zero MQのようなものを使用できます

Rasmus Lerdorf による例を参照してください。

Gearmanを使用して負荷を分散することも検討できます。

于 2012-07-06T06:51:59.377 に答える
3

これを見てください。

永続化のために memcached を使用します。

于 2012-07-06T06:50:29.720 に答える
0

これに関する別の優れたチュートリアルを次に示します。

http://squirrelshaterobots.com/programming/php/building-a-queue-server-in-php-part-1-understanding-the-project/

もう1つの解決策は、PHPに組み込まれているように見えるGearmanを使用することです(私が最後に遊んだのはそうではありませんでした):http://php.net/manual/en/book.gearman.php

于 2012-07-06T08:16:32.463 に答える
0

リレーショナル DB (例: MySQL) は非常に柔軟で、Web 開発者によく理解されているため、多くの種類のジョブ キューに使用されています。多くの PHP アプリケーションは、オブジェクト キャッシングが構成されていない場合に、このソリューションをフォールバックとして使用します。キューを実装するには非常にコストがかかるため、これは最後の手段です。

キューとして MySQL を使用する必要がある場合は、Percona のエンジニアの 1 人が、潜在的な問題点の管理に関する このブログ エントリを書きました。

最もスケーラブルな実装が必要な場合は、ZeroMQ を強くお勧めします。ただし、これはデフォルトの、または特に一般的な PHP 拡張機能ではありません。したがって、Web サーバー スタックを制御しないプロジェクトの場合: APC オブジェクト、Memcache、または Memcached を使用してから、MySQL キャッシュ テーブルにフォールバックします。

于 2014-02-22T07:29:41.370 に答える