タグ

ブックマーク / orange-factory.com (1)

  • 処理待ちでブラウザがタイムアウトするのを防ぐ - 備忘帳 - オレンジ工房

    CGIで、処理はバックで走らせつつ、ブラウザには先に返答を返してしまいたいとき、どうするかという話です。 forkを使って別プロセスを作る方法を良く見かけるのですが、ラクダを見る限りでは、ゾンビとかややこしそうな臭いが...。 ということで別の案を検討してみました。 forkを使って別プロセスを作る。 まずは、よく見かける方法。親プロセスは、「処理開始」をブラウザに知らせて終了します。子プロセスは、実際の処理を行います。 問題点 親プロセスが子プロセスの処理終了を待たずにexitしてしまうと、子プロセスがゾンビになってしまう。 fork以外の方法を使って別プロセスをスタートさせた場合には、Perlが、ゾンビになった子プロセスの後始末をしてくれる。しかし、じかにforkを使って別プロセスを起動した場合には、あなたは自分で後始末をしなければならない。 (ラクダ「16.1.2 ゾンビの後始末

  • 1