Perlについての質問です。


Windows上でApacheを利用していますが、長い処理をしているとタイムアウトしてしまいます。
SIGALERTとかを調べてみたのですが、今ひとつわかりません。

処理が終わるまで、タイムアウトさせない方法をどなたか教えてください。

Windows XP SP2
Perl ver 5.8.8
Apache HTTP Server 2.2.3

回答の条件
  • URL必須
  • 1人20回まで
  • 登録:
  • 終了:2007/03/24 01:50:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:bonlife No.1

回答回数421ベストアンサー獲得回数75

ポイント35pt

何秒でタイムアウトしますか?

300秒(5分)であれば、ApacheのTimeoutでしょう。

Apacheの設定ファイル(httpd.conf)でTimeoutが設定されているはずです。

この値を変更すればTimeoutするまでの時間をのばすことはできます。

[参考URL]


ただ、300秒以上かかるような処理をそのまま待たせるのはユーザビリティ、サーバ負荷の両観点で問題があると思います。

ユーザにメールアドレスを入力させ、処理完了後にメールして結果ページを知らせる、といった対応を考えた方が良いのではないでしょうか。

少しでも参考になれば幸いです。

id:zachouR

タイムアウトを設定し直してうまくいきました。ありがとうございます。

確かに300秒以上かかる処理を、やらせるというのは非常にまずい事なのですが、自分がつくったソフトを使う場所は、特殊な状況下なので問題ないかな?と思っています。

これを、実際にネット上で使用するとなると非常に問題だと思います。

大変参考になりました、ありがとうございます。

2007/03/18 17:29:12
id:b-wind No.2

回答回数3344ベストアンサー獲得回数440

ポイント35pt

Apache の Timeout ディレクティブ を長くする。

core - Apache HTTP ������


もしくは処理が終わるまで、ダミーの空白などを少しづつ出し続ける事でタイムアウトさせない。

id:zachouR

いつもありがとうございます。

timeoutをながくするというのを試してみてうまくいきましたが、ダミーの空白を出し続けるというのは、printで出力するということでしょうか?

2007/03/18 17:26:39

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません