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が頑張りすぎて処理が超重い。
まぁこれはサーバーを別に立てれば解決することではあるはずなのだけれども。
昨日の仕事で詰まった部分ということでメモっておきます

コメント

最新の日記 一覧

<<  2025年6月  >>
1234567
891011121314
15161718192021
22232425262728
293012345

お気に入り日記の更新

最新のコメント

この日記について

日記内を検索