【PHP】バックグラウンド(非同期)で処理を実行する
PHPで重い処理を行う場合、バックグラウンドでの処理依頼だけして、すぐレスポンスを返す方法のメモ。
基本PHPでは非同期処理をサポートしていないので、外部プログラムとして実行させる
exec('実行したいプログラム > /dev/null &')
これを応用してPHPの処理自体を非同期で行うには
exec('wget --spider http://localhost/hoge.php > /dev/null &') exec('php /var/www/html/hoge.php > /dev/null &')
こんな感じで外部プログラムでPHPを実行する。
ちなみにexecを実行するためにはsafe_modeがoffでないと駄目。
wgetについてはここを参考に。