2012-04-02 6 views
0

エクセルからデータベースにデータをインポートする機能があります。サーバ上でこの機能を実行するので、この機能はクライアントともう対話する必要はありません。ちょうどサーバーにExcelファイルをアップロードする必要があります、その後、タスクはサーバー上で実行されるので、ブラウザがクライアントによって閉じられた場合、関数はまだサーバー上で実行され、私はこれを持っている、問題は、ブラウザがクライアントが開いたままにしておくと、ブラウザは機能がまだアクティブである限り読み込みます。ブラウザがサーバーからの応答を待機しないようにして、プロセスがサーバー上で実行されている間にブラウザが読み込まないようにします。PHP:メインプロセスとは別のプロセスを実行する方法

答えて

2

message queueを使用して、ファイルをWebサーバーから処理するタスクを別のデーモンにオフロードします。

+0

お返事ありがとうございました。このメッセージキューを使用する方法のチュートリアルや例を教えていただけますか? – user1290932

0

のプロセスを&とすると、安価で簡単なルートを使用して、バックグラウンドにすることができます。しかし、それはあなたにほとんどコントロール/ステータスを与えません。

IMOは、これらの長期実行タスクをデータベースにキューイングし、いくつかのステータス情報を関連付けてデータベースに格納します。次に、Webサーバーとは別に実行され、タスクのためにデータベースをチェックし、実行し、成功/失敗のステータスでデータベースを更新する専用のプロセスを実行します。このようMsevenのキュープラグインとしてキューを使用してに

0

ルック:

Msevens Queue Plugin

それとも、あなたはより多くのデーモンベースの仕事をしたい場合は、Beanstalkdに見えます。 msevenのキュープラグインは、かなり自己説明的です。 &を使用してプロセスをフォークしないようにすると、制御が外れることがあります。

関連する問題