【PHP】バックグラウンド(非同期)で処理を実行する

PHPで重い処理を行う場合、バックグラウンドでの処理依頼だけして、すぐレスポンスを返す方法のメモ。

基本PHPでは非同期処理をサポートしていないので、外部プログラムとして実行させる

exec('実行したいプログラム > /dev/null &')

参考:PHP中級、2外部プログラム実行

これを応用して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についてはここを参考に。