私はいくつかかなりのimagemagickコマンドを実行する必要があるPHPスクリプトを持っています。PHPワーカープロセスのコーディング方法を教えてください。
これらのコマンドは、複数のユーザーが同時に実行できるため、ユーザーa、b、c、およびdはすべて同じタスクを実行しています。バックグラウンドプロセスにしたいので、たとえばjQueryを使って処理中にローディングバーを表示することができます。
これを達成するにはどうすればよいでしょうか?それとも簡単な方法がありますか?
私はいくつかかなりのimagemagickコマンドを実行する必要があるPHPスクリプトを持っています。PHPワーカープロセスのコーディング方法を教えてください。
これらのコマンドは、複数のユーザーが同時に実行できるため、ユーザーa、b、c、およびdはすべて同じタスクを実行しています。バックグラウンドプロセスにしたいので、たとえばjQueryを使って処理中にローディングバーを表示することができます。
これを達成するにはどうすればよいでしょうか?それとも簡単な方法がありますか?
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/
は、あなたからの読み取り、バックグラウンドで実行中のデーモンを作成することもできますがデータベーステーブルには、作業が必要なすべてのジョブが含まれています。そして、その特定のプロセスに対してすべてのジョブがクリアされるまで、そのテーブルのフロントエンドプロセスで確認することができます。
メッセージキューを使用することもできます。したがって、競合することなく複数のデーモンを(マルチコアシステムなどで)並列で使用できます。
ところで...いくつかの共有Webホスティング業者は、複数の長期実行PHPプロセスファンではありません。 – bardiir
私は何時間も探していますが、少なくとも解決策は私にとってはとても簡単でしたCron JobscPanelでは、アドバンスト - >クロンジョブに移動し、コマンドラインでPHPスクリプトを使用してタスクをスケジュールすることができます。
/usr/bin/wget http://www.example.com/miscript.php
以上:スクリプトのPHP実行
Aコマンド例
php /home/USER/public_html/miscript.php
あなたはAJAXを使用して考えがありますか?つまり、リクエストを呼び出してサーバーサイドのものを起動し、応答が受信されていない間にローディングバーを表示するだけです。 – MJA