小池啓仁 ヒロヒト応援ブログ By はてな

小池啓仁(コイケヒロヒト)の動画など。

小池啓仁 ヒロヒト応援ブログ By はてな

CGIで重たい処理をするには?

CGIで重たい処理をする時は、タイムアウトになってしまうので、fork等で重たい処理を切り離せばいいわけです。
UNIX系では、fork後、標準出力をクローズすると切り離せます。
しかし、WINDOWS系では、クローズしても切り離せないのです。
そこで、WINDOWS系では、ATコマンドで重たい処理を切り離します。

($sec, $min, $hour) = localtime(time + 60); #1分後にATコマンドから起動するため
my $rc = system "c:\\windows\\system32\\at.exe $hour:$min c:\\Inetpub\\wwwroot\\cmd_omotai.bat";

尚、CGIからATコマンドを発行できる権限がat.exeに必要です。