2012-04-27 11 views
0

私は管理パネルからかなり集中的に仕事をしているサイトを持っています。 私は何とかそれが生成する出力を妨げることなくそれを実行したいと思います。cakephpオフラインタスク

もっと明確にする。フォームを送信する際には大きなzipファイルを解凍する必要があります。また、すべての画像に対して私はデータベースに挿入する必要があります。このプロセスには3〜4分以上かかります。だから、私はジョブを実行して出力し、ジョブが処理されていることを出力したいと思います。 私はユーザーに通知できるかどうかわかりませんが(多分ajax呼び出しで)、気にしません。

可能ですか?それはあなたがデータを処理している間に、ユーザが何をしたいかによって異なり

おかげ

答えて

0

彼を待ってもらいますか?次に、AJAXコールを使用して、タスクが完了するまでプログレスバー(または好きなもの)を表示します。タスクが完了したら、ユーザーに(ajaxを介して)再度通知し、保存している機能を実行します。

あなたが何か他のことをしている間にファイルを処理したい場合は、(CakePHP)ShellTaskをバックグラウンドで呼び出して、その '魔法'をさせることができます。ユーザーがインポートのステータスを表示できるようにするには、すべてのインポートに関する情報を格納するインポートテーブルを作成します。 「ステータス」フィールドを使用することにより、ユーザは、例えば、タスクはまだ実行中です。 シェルタスクが完了すると、インポートの「ステータス」を変更してこれまでどおりに処理できます。これはタスク自体で行う必要がありますが、シェルタスクでモデルを使用できるので問題はありません。同じ方法でuse models in Shellsを使用できます。

ご希望の場合は、この説明を参考にしてください。