08/05/01 02:30:27
> httpサーバーがタイムアウトしないようにする。
RLimitCPU maxする。RLimitCPUは秒またはmaxを指定だから300と書いたら5分でタイムアウト。
> Webブラウザがタイムアウトしないようにする。
だらだらと定期的(例えば1分毎)に出力を垂れ流す。
但し、Apache 1.3の頃はNPHスクリプト使えば、Webブラウザと直結だったが
2.xからNPHを含めて、httpdが常にCGIの向こう側にいるような気がする。
これが正しいなら、httpdがバッファリングするからWebブラウザにデータが
渡らないかもしれないので、一回のトランザクションでやる(Webブラウザを
タイムアウトさせない)のは難しい。
(バッファリングを回避するために、でかいデータを垂れ流すとWebブラウザが太る)
確実にやるなら
・>>551(>>556, >>561)のようにCGIプロセスを切り離す。
・自分でサーバーソケット開く。
・定期的にそれに接続(JavaScriptやmeta refresh使う)することにより、終了を監視する。
ほら、無理にCGIでやる気がなくなってきただろ。(笑)