php非同期処理、システムコマンド実行

659 ワード

難点1:phpはシステムコマンドを実行し、コマンドの実行が完了するまで待たなければなりません.そうしないと、phpプロセス全体が停止し、他のphpサービスが硬直しますか?
難点2:phpが実行したコマンドが完了した後、どのように結果を得るか.
とても良い参考、とても全面的です
風雪の隅:http://www.laruence.com/2008/04/14/318.html
php.iniで無効なシステム実行コマンドを削除することを覚えています.
難点の解決策:
1つ目は、コマンドの後ろに&記号を加え、バックグラウンド処理に移行し、phpを実行できるようにすることです.
参照先:
http://www.netingcn.com/tag/php%E9%9D%9E%E9%98%BB%E5%A1%9E%E6%89%A7%E8%A1%8C
第2種、popenコマンド
pclose(popen("/home/xinchen/backend.php &", 'r'));

難点2解決策:
コマンドの実行が完了した場合?
上記の2つの方法は、処理が終了した後にmemcachedが書き込まれたり、ファイルを生成したり(定期的にクリーンアップ)、外部タイミングで結果ファイルにアクセスしたりして、処理結果を知ることができます.