2012-01-20 20 views
2

私はいくつかかなりのimagemagickコマンドを実行する必要があるPHPスクリプトを持っています。PHPワーカープロセスのコーディング方法を教えてください。

これらのコマンドは、複数のユーザーが同時に実行できるため、ユーザーa、b、c、およびdはすべて同じタスクを実行しています。バックグラウンドプロセスにしたいので、たとえばjQueryを使って処理中にローディングバーを表示することができます。

これを達成するにはどうすればよいでしょうか?それとも簡単な方法がありますか?

+0

あなたはAJAXを使用して考えがありますか?つまり、リクエストを呼び出してサーバーサイドのものを起動し、応答が受信されていない間にローディングバーを表示するだけです。 – MJA

答えて

2

PHPでのデーモンを作成するために、どのようにかなりのガイドがあります。
http://kevin.vanzonneveld.net/techblog/article/create_daemons_in_php/

またはどのようにバックグラウンドプロセスへ:
http://waynepan.com/2007/10/11/how-to-use-ignore_user_abort-to-do-process-out-of-band/

は、あなたからの読み取り、バックグラウンドで実行中のデーモンを作成することもできますがデータベーステーブルには、作業が必要なすべてのジョブが含まれています。そして、その特定のプロセスに対してすべてのジョブがクリアされるまで、そのテーブルのフロントエンドプロセスで確認することができます。

メッセージキューを使用することもできます。したがって、競合することなく複数のデーモンを(マルチコアシステムなどで)並列で使用できます。

+0

ところで...いくつかの共有Webホスティング業者は、複数の長期実行PHPプロセスファンではありません。 – bardiir

-2

私は何時間も探していますが、少なくとも解決策は私にとってはとても簡単でしたCron JobscPanelでは、アドバンスト - >クロンジョブに移動し、コマンドラインでPHPスクリプトを使用してタスクをスケジュールすることができます。

/usr/bin/wget http://www.example.com/miscript.php 

以上:スクリプトのPHP実行

Aコマンド例

php /home/USER/public_html/miscript.php 
関連する問題