Windows上でApacheを利用していますが、長い処理をしているとタイムアウトしてしまいます。
SIGALERTとかを調べてみたのですが、今ひとつわかりません。
処理が終わるまで、タイムアウトさせない方法をどなたか教えてください。
Windows XP SP2
Perl ver 5.8.8
Apache HTTP Server 2.2.3
何秒でタイムアウトしますか?
300秒(5分)であれば、ApacheのTimeoutでしょう。
Apacheの設定ファイル(httpd.conf)でTimeoutが設定されているはずです。
この値を変更すればTimeoutするまでの時間をのばすことはできます。
[参考URL]
ただ、300秒以上かかるような処理をそのまま待たせるのはユーザビリティ、サーバ負荷の両観点で問題があると思います。
ユーザにメールアドレスを入力させ、処理完了後にメールして結果ページを知らせる、といった対応を考えた方が良いのではないでしょうか。
少しでも参考になれば幸いです。
Apache の Timeout ディレクティブ を長くする。
もしくは処理が終わるまで、ダミーの空白などを少しづつ出し続ける事でタイムアウトさせない。
いつもありがとうございます。
timeoutをながくするというのを試してみてうまくいきましたが、ダミーの空白を出し続けるというのは、printで出力するということでしょうか?
タイムアウトを設定し直してうまくいきました。ありがとうございます。
確かに300秒以上かかる処理を、やらせるというのは非常にまずい事なのですが、自分がつくったソフトを使う場所は、特殊な状況下なので問題ないかな?と思っています。
これを、実際にネット上で使用するとなると非常に問題だと思います。
大変参考になりました、ありがとうございます。