2009-07-13 14 views
3

CakePHPは、 のバックグラウンドでcakephpシェルタスクを実行できます。つまり、長いレポートを実行することは可能ですか?また、レポート の生成中にテーブルを更新し、Ajaxを使用してクエリを実行することで、現在の ステータスをユーザーに更新することもできます。トリッキーな部分は、PHPから非同期1を起動することです バックグラウンドでCakePHPシェルを実行する

/path/to/cake/console/cake -app /path/to/app/ <shell> <task> 

よう

答えて

3

はい、あなたは通常のシステムを経由して、バックグラウンドでシェルを実行することができますが呼び出されます。最善のオプションは、ジョブをキューに入れ、シェルをcronジョブとして頻繁に実行してキューを処理することです。その後、キュー内のジョブのステータスを更新し、AJAX経由でその情報をポーリングすることもできます。

+0

あなたは他のオプションを持っていますか?私が知る限り、cronジョブは毎分だけスケジュールすることができます。だから、もしプロセスが最後のcronジョブが実行された直後に待ち行列に入れられたら、それは1分待つ必要がありますか? – codegy

+1

あなたの仕事が長くかかる印象を受けたので、1〜2分は問題になりません。こちらをご覧ください:http://stackoverflow.com/questions/984577/php-need-a-cron-for-back-site-processing-on-user-signup-or-fork-process – deceze

+0

@decezeこのパスを与える方法 -/path/to/cake/console/cake -app/path/to/app/ in crontab? – Abhimanyu

関連する問題