3

私の現在のタスクでは、多数のレコードを選択してステータスを変更したり再割り当てしたりすると、システムがその時点まで遅くなる可能性があるため、ユーザーはこの操作を完了するまでしばらく待つ必要があります。

プロセスがバックグラウンドで実行され、ユーザーが他のタスクを実行できるように、このプロセスをキューに入れる方法はありますか。

よろしくお願いします。

4

5 に答える 5

2

うん... ギアマンを見てください:

http://gearman.org/index.php?id=getting_started

http://php.net/manual/en/book.gearman.php

代わりに、あなたがそれを好まないのであれば、私はこの優れた4部構成のチュートリアルの原則を何度も使用して大きな効果を上げました:

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

于 2012-10-15T10:39:01.957 に答える
0

キューがどのように処理されるかについてさらに情報が必要です。つまり、処理されているデータは、最初のプロセスの後に実行されている 2 番目のプロセスとは何の関係もないということですか? その場合、スクリプトを次のように実行します

yourcommand > /dev/null 2>&1 &

これにより、プロセスがバックグラウンドで実行されます。

PHP のコンテキストでは、速度を求めている場合、PHP に十分なメモリがあるかどうかを確認します。はいの場合、値を配列に保存し、foreach ループを使用してデータを操作します。通常、これはより速く機能します。

詳細情報が必要です。

ハリ

于 2012-10-15T10:47:23.803 に答える
0

はい、確かに。php スクリプトをバックグラウンドで実行させておき、ユーザーがサイトを操作できるようにしたい場合。あなたがする必要があるのは、ヘッダーを送信することだけです:

header("Connection: close");
header("Content-length: $size");

それはあなたが探しているものですか?

于 2012-10-15T10:43:40.983 に答える
0

j-query ajax メソッドを使用し、ユーザーにアクションを行わずに待機させます。

于 2012-10-15T10:42:37.473 に答える
0

から選択できます

  • ギアマン

  • 豆の木

  • RabbitMQ

    基本的に、任意の MessageQ システムを実行してから、STOMP (標準プロトコル) を使用してプロセス間で通信できます。

于 2012-10-15T10:42:43.487 に答える