忘れないようにメモっておこう
2008年5月8日 日常phpを使用してバッチファイル経由でphpを呼び出し、バックグラウンド処理をする場合。
UNIXだと
dev/null/ &
でいいのだがwindowsだとそうもいかない。
startコマンドではバッチファイルがバックグラウンドで起動するがその後にphpが噛んでいるためどうにもならないみたい。
なのでpopen()を使う。
$cmd = (’start /b cmd /c "test.bat" > nul’);
$fp = popen($cmd,"r");
if( !$fp ) die("Can’t exec");
pclose($fp);
この処理でブラウザがハングせずに動かせる・・・はず
昨日これが分からなくてずっと進めなかったからなぁ・・・
ただこの動作だと妙に不安定な気もする。
作業用マシン上にサーバーを立てているためmysqlが頑張りすぎて処理が超重い。
まぁこれはサーバーを別に立てれば解決することではあるはずなのだけれども。
昨日の仕事で詰まった部分ということでメモっておきます
UNIXだと
dev/null/ &
でいいのだがwindowsだとそうもいかない。
startコマンドではバッチファイルがバックグラウンドで起動するがその後にphpが噛んでいるためどうにもならないみたい。
なのでpopen()を使う。
$cmd = (’start /b cmd /c "test.bat" > nul’);
$fp = popen($cmd,"r");
if( !$fp ) die("Can’t exec");
pclose($fp);
この処理でブラウザがハングせずに動かせる・・・はず
昨日これが分からなくてずっと進めなかったからなぁ・・・
ただこの動作だと妙に不安定な気もする。
作業用マシン上にサーバーを立てているためmysqlが頑張りすぎて処理が超重い。
まぁこれはサーバーを別に立てれば解決することではあるはずなのだけれども。
昨日の仕事で詰まった部分ということでメモっておきます
コメント